通过调用 Windows API 禁止控件的重绘,减少闪烁
在编程工作中,我们会经常遇到,频繁地设置某些控件的属性,由于每次属性变化都会引发控件的重绘,导致屏幕闪烁,影响用户体验,此时,我们可以暂时禁止控件重绘,把所有的设置完成后,再重新允许重绘。
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB;
//停止控件的重绘
private void BeginPaint()
{
SendMessage(yourRichTextBox.Handle, WM_SETREDRAW, 0, IntPtr.Zero);
}
//允许控件重绘.
private void EndPaint()
{
SendMessage(yourRichTextBox.Handle, WM_SETREDRAW, 1, IntPtr.Zero);
yourRichTextBox.Refresh();
}
http://blog.163.com/j_yd168/blog/static/4967972820093291162451/