【问题标题】:WS_EX_COMPOSITED causes entire app to flicker/shimmer when tab control has too many tabsWS_EX_COMPOSITED causes entire app to flicker/shimmer when tab control has too many tabs
【发布时间】:2012-12-13 20:30:45
【问题描述】:

为了解决闪烁问题,我在 winforms 应用程序中使用了WS_EX_COMPOSITED。在选项卡控件获得如此多的选项卡以创建“滚动箭头”之前,此方法非常有效。在这一点上,我的整个应用程序看起来就像是不断重绘,到处闪烁闪烁。

为了查看它是否只是我的应用程序,我编写了一个简单的 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。

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    看看这个问题的答案flicker free tab control with WS_EX_COMPOSITED

    可能需要一些时间来解决,但它应该会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多