如何避免在添加新的MDI子窗口时出现屏幕跳动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何避免在添加新的MDI子窗口时出现屏幕跳动相关的知识,希望对你有一定的参考价值。
在我的MDI框架中,我正在如下创建MDI子窗口:
Form frm = new frmMyChild();
frm.MdiParent = this;
frm.WindowState = FormWindowState.Maximized;
frm.Show();
frm.Focus();
到目前为止,这很好,但是屏幕很快就会“弹起”,因为子窗口被置于“正常”状态,然后再次将它们最大化。如何预防?
答案
即使将MenuStrip添加到MDI父窗体,Form.MainMenuStrip仍为 blendnull
。当此属性为null
时,MDI子项的“系统菜单”控件不会与MenuStrip(或旧的MainMenu
)一起使用,因此子子窗体标题栏仍然可见,并位于MenuStrip上方。当创建并最大化新的子窗体时,在重新创建子窗体标题时,上下菜单MenuStrip bounces。 将MainMenuStrip
属性设置为MDI父级MenuStrip的实例,将使MDI子级的System Menu控件与MenuStrip(或MainMenu
)一起成为
[TheMDIMenuStrip
InitializeComponent()
中初始化的MDI父级的MenuStrip。 public partial class MDIParent : Form
{
public MDIParent()
{
InitializeComponent();
this.MainMenuStrip = this.TheMDIMenuStrip;
this.TheMDIMenuStrip.SendToBack();
}
...
}
之前:
之后:
以上是关于如何避免在添加新的MDI子窗口时出现屏幕跳动的主要内容,如果未能解决你的问题,请参考以下文章
如何在MDI的主窗口菜单中新建一个菜单选项,点击该选项建立一个新的子窗口
在winform的MDI窗体中,打开一个新的子窗体的同时如何关闭前一个子窗体?