RichTextBox滚动条闪烁

本文关键字:闪烁 滚动条 RichTextBox | 更新日期: 2023-09-27 18:01:11

我在windows窗体中遇到richTextBox问题。

我启用了垂直滚动,除了用鼠标拖动滚动条外,一切都很好。当我这样做的时候,滚动条只是停留在原地并闪烁,直到我释放拖动。当我使用鼠标上的滚轮或单击向上/向下箭头键时,条会定期滚动而不闪烁。

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

RichTextBox滚动条闪烁

如果其他人有这个问题,我在这里找到了解决方案: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();
}