我有一个带有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,它就不会闪烁。
答案 0 :(得分:1)
这些建议的前提是该问题也会在IE中出现。
你可以尝试两件事:
- 安装最新的视频驱动程序
- 尝试更新Adobe Flash。 (您可以使用No Addons启动IE以查看flash是否是罪魁祸首。)
答案 1 :(得分:0)
"不是每次都重新加载新文档,而是设置现有Document.Body的InnerHTML。"