如果出现下面图示情况:
最大化后:
移动可以遮住菜单栏:
大家要知道,C#已经对子窗体最大化后,子窗体的标题栏会和父窗体的菜单栏融合。子窗体最小化后有个小窗体会紧挨状态栏停靠:
造成这种情况的原因:
private void Form1_Load(object sender, EventArgs e) 中加入了如下语句:
child.TopLevel = false;
child.Parent = this; //是这两句话造成的这种现象
child.StartPosition = FormStartPosition.Manual;
child.Show();
child.Focus();
解决方法,将上面的代码改为:
child.WindowState = FormWindowState.Normal;
child.MdiParent = this;//这句代码也要写上,否则会出错。
child.Show();
child.Focus();
如果更改了后出现:
会报“无法将顶级控件赋给控件”异常,解决这个问题我用
child.TopLevel = false;
这句代码,从而造成开篇出现的这种现象。
解决这些问题后,正确效果是:
如果出现下面情况:
解决方法:添加主窗体的menuStrip1控件的 ItemAdded事件处理函数,代码如下:
private void menuStrip1_ItemAdded(object sender, ToolStripItemEventArgs e)
{
if (e.Item.Text.Length == 0 )
{
e.Item.Visible = false;
}
}