2012-03-22 180 views
0

我有一個帶有Web瀏覽器控件的窗體應用程序,當我重新加載Web瀏覽器上的任何頁面時簡單控制我的應用程序閃爍的標題,這很奇怪,因爲我使用該代碼來減少閃爍儘可能多的爲:Webbrowser閃爍問題

public Form1() 
    { 
     InitializeComponent(); 
     //SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true); 
     this.SetStyle(ControlStyles.UserPaint, true); 
     this.SetStyle(ControlStyles.DoubleBuffer, true); 
     this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); 
     this.SetStyle(ControlStyles.UserPaint, true); 
     this.SetStyle(ControlStyles.SupportsTransparentBackColor, false); 
     this.SetStyle(ControlStyles.Opaque, false); 
     this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); 
     this.SetStyle(ControlStyles.ResizeRedraw, true); 
    } 




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

    private void Form1_Load(object sender, EventArgs e) 
    { 
     TurnOffFormLevelDoubleBuffering(); 
    } 

**它閃爍安裝IE8僅當,但如果安裝了IE9那麼它不閃爍。 「

+1

也許這是IE瀏覽器版本的瀏覽器控件中的一個錯誤? – 2012-03-22 12:41:17

+0

也許我只是想弄清楚爲什麼它閃爍 – 2012-03-22 12:43:20

+0

IE是否表現出相同的行爲? – 2012-03-22 12:51:00

回答

1

這些建議都脫離了這個問題在IE中表現出來的前提。

您可以嘗試兩件事:
- 安裝最新的視頻驅動程序。
- 嘗試更新Adobe Flash。 (你可以用無插件啓動IE來查看閃存是不是罪魁禍首。)

0

」不是每次都重新加載新文檔,而是設置現有Document.Body的InnerHTML。「