2013-02-26 137 views
0

我遇到了一個Windows窗體中的richTextBox問題。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(); 
}