为了解决闪烁问题,我求助于使用WS_EX_COMPOSITED
在 winforms 应用程序中。这可以完美地工作,直到选项卡控件获得如此多的选项卡以至于它创建了“滚动箭头”。此时,我的整个应用程序看起来就像不断重绘,到处都在闪烁。
为了看看这是否只是我的应用程序的问题,我编写了一个简单的 winforms 程序来测试它。它包含的只是一个带有添加选项卡按钮的选项卡控件,其上的表单具有WS_EX_COMPOSITED
启用...果然,当我单击“添加”按钮并出现滚动箭头时,就会发生闪烁。
多行选项卡控件解决了这个问题,但我在应用程序中没有空间来使用它。对于我的测试应用程序来说,代码非常简单...只需添加一个选项卡页和一个按钮,然后在表单中执行以下操作:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}
private void button1_Click(object sender, EventArgs e)
{
this.tabControl1.TabPages.Add("SomeTab");
}
如果有的话我正在运行win7。
看看这个问题的答案使用 WS_EX_COMPOSITED 实现无闪烁选项卡控件 https://stackoverflow.com/questions/4188306/flicker-free-tab-control-with-ws-ex-composited
可能需要一些时间来解决,但应该会有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)