본문 바로가기

.NET(C#,ASP)

[C#]컨트롤에 포커스가 자동으로 안갈 때


간단한 폼을 만들었는데, 프로그램 실행 시 텍스트박스에 포커스가 가게끔 하려고 하였다.
그런데 이상하게 포커스가 안가는 것이다.

웹에서와 마찬가지로 컨트롤.Focus();면 되는거 같은데..
설명도 된다고 적혀있고... 여기저기 웹을 서핑해봐도 그렇게 하면 다 된다고 하였다.

그런데 내 프로그램은 안가는 것이다.

그러다가 오늘 데브피아에서 해답을 얻었다.
일단 결론부터 말하자면,

        private void MyBrowser_Load(object sender, EventArgs e)
        {
            this.Activate();
            textBox1.Focus();
        }

이것이다.

아무래도 프로그램 실행시 창이 활성화 된 것처럼 보여도 실제로는 활성화가 안된 모양이었나보다.
그래서 this.Activate(); 이거 하나 붙여줬더니 해당 컨트롤에 포커스가 가서 커서가 깜빡이는게 보인다.
별거 아닌 기능때매 좀 해매다니.. ㅡ,.ㅡ;

참고로 this.Activate(); 명령은 앞에 위치하나 뒤에 위치하나 상관없다.