我有一个 TableLayoutPanel,我可以在其中使用布局内的控件进行一些拖放操作。不幸的是,控件在下降操作后闪烁。我在所有控件和许多其他东西上尝试了 DoubleBuffered=true 。
我也尝试过这个解决方案:如何修复用户控件中的闪烁 https://stackoverflow.com/questions/2612487/how-to-fix-the-flickering-in-user-controls。
实际上它与提到的 CreateParams 配合得很好。但只有在我调整表格大小之前。
看起来 Windows 在调整大小后忘记了 WS_EX_COMPOSIET 标志。
它仅与航空主题一起出现。如果没有 aero,它会在调整大小后保留 CreateParams 的设置。
有什么办法可以防止航空主题打开时闪烁吗?
在表单调整大小事件(onResizeBegin 和 on ResizeEnd)上使用以下代码:
protected override void OnResizeBegin(EventArgs e)
{
SuspendLayout();
base.OnResizeBegin(e);
}
protected override void OnResizeEnd(EventArgs e)
{
ResumeLayout();
base.OnResizeEnd(e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)