【问题标题】:Flicker free TextBox无闪烁文本框
【发布时间】:2012-11-18 11:22:16
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net winforms textbox flicker


    【解决方案1】:

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

    1. 找出闪烁的原因 - 显卡驱动程序问题?
    2. 将表单的ResizeRedraw属性设置为false

    http://msdn.microsoft.com/en-us/library/system.windows.forms.control.resizeredraw.aspx

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 2017-03-08
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 2010-10-10
      相关资源
      最近更新 更多