【问题标题】:WinForms MDI form smooth switch between child formsWinForms MDI窗体子窗体之间的平滑切换
【发布时间】:2019-10-25 12:23:11
【问题描述】:

我有一个 MDI 父窗体

formMain

我使用表单在其中显示 2 个不同的子表单。

formChildOne,formChildTwo

问题是每当我在子表单之间切换时,界面都会变得非常紧张,直到表单完全显示出来,并且看起来很难看。

我怎样才能让这个过程看起来更优雅一点?

【问题讨论】:

  • 可能有一些截图?
  • 当您始终保持 MDI 子窗口最大化时往往会发生这种情况。其中只有一个可以最大化,因此当您切换时,您会看到它恢复旧的,选择新的并最大化它。如果表单不能顺利调整大小,那么这看起来很“紧张”。如果这是您的首选 UI,请不要使用 MDI,而是交换停靠的用户控件。
  • jittery 是什么意思?尺寸变化?表格冻结?还有什么?如果 Winforms 本身存在这样的问题,人们会从一开始就注意到 - 17 年前。如果jittery 表示“控件大小不断变化”,则可能意味着表单代码和布局会随着数据的加载而变化。
  • @PanagiotisKanavos 紧张的意思是表单中的表单和控件的大小变化非常明显,只是看起来不太好
  • @bapster 固定大小的控件不会移动。这意味着控件被配置为在加载数据或其他控件时更改大小。如果您使用固定大小的控件,它们不会改变。您还可以使用停靠或布局管理器、最小尺寸等来减少调整大小的需要。没有表单代码,只能猜测。

标签: c# winforms


【解决方案1】:

尝试在您的子表单和父表单上设置此属性:

DoubleBuffered=True

希望对你有帮助!

【讨论】:

  • 我认为默认是true
  • 默认是真的。来自How to: Reduce Graphics Flicker with Double Buffering for Forms and ControlsStandard Windows Forms controls are double buffered by default.
  • 我已经试过了,它减少了“紧张感”,但并不完全
  • No for Windows Forms 默认值为 = false,反正他可以检查看看是否有帮助?
  • 它没有 - 它是 controls 改变大小,正如文档解释的那样,默认情况下启用了控件双缓冲
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多