c# – 如何防止RichTextBox刷新其显示?

前端之家收集整理的这篇文章主要介绍了c# – 如何防止RichTextBox刷新其显示?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个RichTextBox,我需要经常更新Text属性,但是当我这样做时,RichTextBox会因为在整个方法调用中刷新所有内容而“眨眼”.

我希望找到一种简单的方法来暂时禁止屏幕刷新,直到我的方法完成,但我在网上找到的唯一一件事是覆盖WndProc方法.我采用了这种方法,但有一些困难和副作用,它也使调试更加困难.看起来似乎必须有更好的方法来做到这一点.有人能指出我更好的解决方案吗?

解决方法

这是完整而有效的例子:
private const int WM_USER = 0x0400;
    private const int EM_SETEVENTMASK = (WM_USER + 69);
    private const int WM_SETREDRAW = 0x0b;
    private IntPtr OldEventMask;       

    [DllImport("user32.dll",CharSet=CharSet.Auto)]
    private static extern IntPtr SendMessage(IntPtr hWnd,int msg,IntPtr wParam,IntPtr lParam);

    public void BeginUpdate()
    {
        SendMessage(this.Handle,WM_SETREDRAW,IntPtr.Zero,IntPtr.Zero);
        OldEventMask = (IntPtr)SendMessage(this.Handle,EM_SETEVENTMASK,IntPtr.Zero);
    }       

    public void EndUpdate()
    {
        SendMessage(this.Handle,(IntPtr)1,IntPtr.Zero);
        SendMessage(this.Handle,OldEventMask);
    }
原文链接:https://www.f2er.com/csharp/97852.html

猜你在找的C#相关文章