【问题标题】:Flickering after resize despite the WS_EX_COMPOSIET flag and DoubleBuffered propertie尽管有 WS_EX_COMPOSITED 标志和 DoubleBuffered 属性,但在调整大小后闪烁
【发布时间】:2012-05-29 19:17:07
【问题描述】:

我有一个 TableLayoutPanel,我在其中使用布局内的控件进行拖放操作。不幸的是,控件在放置动作后闪烁。我在所有控件和许多其他东西上都尝试了 DoubleBuffered=true。 我也试过这个解决方案:How to fix the flickering in User controls。 实际上它与上面提到的 CreateParams 配合得很好。但直到我调整表格大小。 调整大小后,Windows 似乎忘记了 WS_EX_COMPOSIET 标志。 它仅以航空主题出现。如果没有 aero,它会在调整大小后保留 CreateParams 的设置。

有什么办法可以防止开启aero主题时闪烁?

【问题讨论】:

标签: c# .net winforms flicker aero


【解决方案1】:

在表单调整大小事件(onResizeBegin & on ResizeEnd)上使用以下代码:

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

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

【讨论】:

  • 这是我做的第一件事。不幸的是没有成功。使用较少的嵌套控件,我得到了可以接受的结果。
猜你喜欢
  • 2019-12-06
  • 2019-01-09
  • 2015-01-24
  • 2015-01-20
  • 2019-01-05
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 2016-03-19
相关资源
最近更新 更多