无闪烁的TextBox

时间:2012-11-30 08:57:08

标签: c# .net winforms textbox flicker

我的表单上有一个简单的Winforms多行TextBox。每当我调整大小或移动TextBox时,其内容就会开始疯狂地闪烁。这看起来非常恶心,甚至可能导致一些用户癫痫发作; - )

有没有办法操纵TextBox的重绘过程来摆脱闪烁?

2 个答案:

答案 0 :(得分:7)

我在working solution撰写的MSDN论坛上找到了Hans Passant。以下代码可以添加到表单中,也适用于所有子控件:

    protected override CreateParams CreateParams {
        get {
            const int WS_EX_COMPOSITED = 0x02000000;
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= WS_EX_COMPOSITED;
            return cp;
        }
    } 

答案 1 :(得分:1)

afaik你无法控制表单上单个控件的调整大小模式...... 在我看来,你有两个选择:

  1. 找出闪烁发生的原因 - 图形驱动程序问题?
  2. 将表单的 ResizeRedraw 属性设置为 false
  3. http://msdn.microsoft.com/en-us/library/system.windows.forms.control.resizeredraw.aspx