浏览器闪烁问题
本文关键字:问题 闪烁 浏览器 | 更新日期: 2023-09-27 18:28:44
我有一个带有web浏览器控件的windows窗体应用程序,当我在web浏览器控件上重新加载任何页面时,应用程序的标题都会闪烁,这很奇怪,因为我使用该代码来尽可能减少闪烁:
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,则不会闪烁。
这些建议的前提是问题也会在IE中表现出来。
你可以尝试两件事:
-安装最新的视频驱动程序
-尝试更新Adobe Flash。(你可以用无插件启动IE,看看flash是否是罪魁祸首。)
"与其每次都重新加载新文档,不如设置现有document.Body的InnerHTML。"