C# 网络浏览器闪烁问题
我有一个带有web浏览器控件的windows窗体应用程序,当我在web浏览器控件上重新加载任何页面时,应用程序的标题都会闪烁,这很奇怪,因为我正在使用该代码尽可能减少闪烁:C# 网络浏览器闪烁问题,c#,winforms,webbrowser-control,flicker,C#,Winforms,Webbrowser Control,Flicker,我有一个带有web浏览器控件的windows窗体应用程序,当我在web浏览器控件上重新加载任何页面时,应用程序的标题都会闪烁,这很奇怪,因为我正在使用该代码尽可能减少闪烁: public Form1() { InitializeComponent(); //SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintin
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,则不会闪烁。“与其每次重新加载新文档,不如设置现有文档.Body的InnerHTML。”这些建议的前提是,问题也会在IE中表现出来 您可以尝试两件事:
-安装最新的视频驱动程序。
-尝试更新Adobe Flash。(你可以在没有插件的情况下启动IE,看看flash是否是罪魁祸首。)
也许这是IE8版本的webbrowser控件中的一个bug?也许我只是想弄清楚为什么它会闪烁IE会表现出同样的行为?我不知道,实际上我的客户是这么说的,但我告诉他访问facebook,例如,因为他使用的是本地主机页面,“我的应用程序的标题”是什么意思?表单的激活事件是否重复触发?