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();
}