尽管有WS_EX_COMPOSIET标志和DoubleBuffered属性,但在resize后闪烁

我有一个TableLayoutPanel,我在其中使用布局中的控件执行一些拖放操作。 不幸的是,控制在掉落动作后闪烁。 我在所有控件和许多其他东西上尝试了DoubleBuffered = true。 我也试过这个解决方案: 如何修复用户控件中的闪烁 。 实际上它与上面提到的CreateParams一起工作得很好。 但只有在我调整表单大小之前。 在resize后,Windows似乎忘记了WS_EX_COMPOSIET标志。 它只出现在航空主题上。 如果没有aero,它会在resize后保留CreateParams的设置。

打开aero主题时有没有办法防止闪烁?

在表单上resize事件(onResizeBegin&on ResizeEnd)使用以下代码:

 protected override void OnResizeBegin(EventArgs e) { SuspendLayout(); base.OnResizeBegin(e); } protected override void OnResizeEnd(EventArgs e) { ResumeLayout(); base.OnResizeEnd(e); }