결론부터 이야기 하자면 이렇다.
1.Win32 API 함수가 최고!!!
2.다른 쓰레드에서 메인 쓰레드의 Control들을 접근할시엔 InvokeRequired 속성과 Invoke()를 사용하자.
2번을 한다 해도 Control.Focus() 나 Control.Select() 등의 함수가 작동하지 않을 수 있다.
이럴땐 Win32 API 함수를 쓰자..
private const int WM_VSCROLL = 0x115;
private const int SB_BOTTOM = 7;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SetFocus(IntPtr hWnd);
// Scroll to the bottom, but don't move the caret position.
SendMessage(tb.Handle, WM_VSCROLL, (IntPtr)SB_BOTTOM, IntPtr.Zero);
//control에 focus 주기
SetFocus(textbox.Handle);
'C#, .NET' 카테고리의 다른 글
Brushes 에 정의된 색 (0) | 2011.06.17 |
---|---|
DateTime 출력형식 출력모양 메서드에 따른 나오는모양 (0) | 2011.06.17 |
가변인자 사용하기 - params 키워드 (0) | 2011.06.17 |
textbox 에서 엔터쳤을때의 처리 (0) | 2011.06.17 |
Form Control 에 thread-safe 한 call 사용하기 (0) | 2011.06.17 |