C# 重新绘制自定义表单时闪烁

C# 重新绘制自定义表单时闪烁,c#,forms,C#,Forms,我从System.Windows.Forms.Form类派生了一个类来创建自定义表单 我已覆盖方法WndProc(ref m)并处理WM\u NCPAINT窗口消息,以使用我自己的自定义设置绘制标题栏 我用图形方法画了标题栏、按钮和图标 问题是,调整表单的大小会导致表单的非客户端区域重新绘制,从而导致非客户端区域闪烁 我已尝试重写CreateParams并将双缓冲设置为true。但我不知道如何正确使用这些东西 你能为这个问题提供解决方案吗 提前感谢。您必须为导致问题的控件设置双缓冲和重写Crea

我从System.Windows.Forms.Form类派生了一个类来创建自定义表单

我已覆盖方法WndProc(ref m)并处理WM\u NCPAINT窗口消息,以使用我自己的自定义设置绘制标题栏

我用图形方法画了标题栏、按钮和图标

问题是,调整表单的大小会导致表单的非客户端区域重新绘制,从而导致非客户端区域闪烁

我已尝试重写CreateParams并将双缓冲设置为true。但我不知道如何正确使用这些东西

你能为这个问题提供解决方案吗


提前感谢。

您必须为导致问题的控件设置双缓冲和重写
CreateParams
。如果这是
按钮
,那么为特定的按钮类设置这些按钮(扩展它或其他东西)。@m.rogalski感谢您的回复。我试试这个。但问题不仅仅在于控制。调整窗体大小时,标题栏本身会闪烁。边框线、标题栏按钮和图标中都会出现闪烁。您能否以某种方式显示其行为?制作视频剪辑或gif?是的。我将编辑这个问题。这已经不现实16年了,视觉风格扼杀了它。每个人都使用无边框窗口来模拟定制chrome的基本原因。