0
我遇到了一个Windows窗体中的richTextBox问题。RichTextBox滚动条闪烁
我已启用垂直滚动和一切工作正常,除了当我用鼠标拖动滚动条。当我这样做时,滚动条会保持原样并闪烁,直到我释放拖动。当我使用鼠标上的滚轮时,滚动条不会闪烁,或者点击向上/向下箭头键。
任何想法为什么会发生这种情况?
我遇到了一个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();
}