2012年 06月 10日
C# textBoxのちらつき防止
(実は面倒なので、textBox1にのっけてます) がっぁ ちらつく!
~ そりゃそだわと、ちらつき防止をいれました。 ~
[DllImport("user32")]
private static extern int SendMessage(
IntPtr hWnd, uint Msg, long wParam, long lParam);
private const uint WM_SETREDRAW = 0x000B;
textBox1.Textを変更する前に、textBox1のウィンドウの再描画を無効にして
SendMessage(textBox1.Handle, WM_SETREDRAW, 0, 0);
textBox1も無効に、
texBox1.Enabled = false;
バックグラウンドの処理にまわす
backgroundWorker1.RunWorkerAsync();
バックグラウンドが処理が終わったら
backgroundWorker1_RunWorkerCompleted( )
すかさず、textBox1を有効にしてやる
textBox1.Enabled = true;
再描画を有効にしてやる
SendMessage(textBox1.Handle, WM_SETREDRAW, 1, 0);
textBox1をリフレッシュ
textBox1.Refresh();
こんなかんじー