【问题标题】:RichTextBox scrollbar flickerRichTextBox 滚动条闪烁
【发布时间】:2013-02-26 19:55:25
【问题描述】:

我在 Windows 窗体中遇到了 RichTextBox 问题。

我启用了垂直滚动并且一切正常,除非我使用鼠标拖动滚动条。当我这样做时,滚动条会保持原位并闪烁,直到我释放拖动。当我使用鼠标上的滚轮或单击上/下箭头键时,该栏会定期滚动而不会闪烁。

关于为什么会发生这种情况的任何想法?

【问题讨论】:

    标签: c# winforms richtextbox


    【解决方案1】:

    如果其他人遇到此问题,我在这里找到了解决方案:http://www.angryhacker.com/blog/archive/2010/07/21/how-to-get-rid-of-flicker-on-windows-forms-applications.aspx

    基本上,所有需要添加到 form.cs 文件的内容是:

    int originalExStyle = -1;
    bool enableFormLevelDoubleBuffering = true;
    
    protected override CreateParams CreateParams
    {
        get
        {
            if (originalExStyle == -1)
                originalExStyle = base.CreateParams.ExStyle;
    
            CreateParams cp = base.CreateParams;
            if (enableFormLevelDoubleBuffering)
                cp.ExStyle |= 0x02000000;   // WS_EX_COMPOSITED
            else
                cp.ExStyle = originalExStyle;
    
            return cp;
        }
    }
    
    private void TurnOffFormLevelDoubleBuffering()
    {
        enableFormLevelDoubleBuffering = false;
        this.MaximizeBox = true;
    }
    
    private void frmMain_Shown(object sender, EventArgs e)
    {
        TurnOffFormLevelDoubleBuffering();
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 2011-09-06
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2020-08-27
      • 2012-10-16
      相关资源
      最近更新 更多