C# Winform,TableLayoutPanel在动态控件上闪烁添加/删除?

C# Winform,TableLayoutPanel在动态控件上闪烁添加/删除?,c#,winforms,C#,Winforms,我在我的winform应用程序中使用CreateParams覆盖,以避免在使用动态控件填充TableLayout面板时出现飞片。代码如下: protected override CreateParams CreateParams { get { CreateParams CP = base.CreateParams; CP.ExStyle = CP.ExStyle | 0x02000000;

我在我的winform应用程序中使用CreateParams覆盖,以避免在使用动态控件填充TableLayout面板时出现飞片。代码如下:

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams CP = base.CreateParams;
            CP.ExStyle = CP.ExStyle | 0x02000000;
            return CP;
        }
    } 

这会导致我的CPU使用率超过30%,要解决这个问题吗?或者其他避免闪烁的方法?

好的,我在这里通过一个按钮更改了值0x020000000。将值更改为0x00000020时,它似乎起作用。或者eve 0x00000040也起了作用。但是您使用的原始值导致了问题。所以再次检查该值。

我不会像那样使用那些十六进制值,因为代码很难读取和维护

如下文所述:


常量是在Windows SDK安装的Windows.h中定义的,您可以将这些常量样式定义从该文件复制到源代码中,并使用名称而不是值。

我在这里用一个MyButton:Button和CreateParems overriden来模拟您的代码。使用这种方法,在启动窗口之前创建窗口句柄异常时会出现错误。我把范围缩小到这个覆盖的方法。没有这个方法,我可以将我的自定义botton放在表单上。稍后我将进一步探讨这种方法。