2012-03-22 126 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。“