摘自:http://wenku.baidu.com/view/8202c4f2770bf78a6529542a.html
1.建立MainForm(设置属性IsMdiContainer=true)父窗体如下所示。
2.双击工具栏上的Form1 图标。设置Form1子窗体的显示。
Form1子窗体显示代码如下:
private void toolStripButton1_Click(objectsender, EventArgs e)
{
Form1 f1= new Form1();
f1.WindowState = FormWindowState.Normal;
f1.MdiParent = this;
f1.Show();
}
3.选中菜单栏menuStrip1,设置其 ItemAdded 事件。
menuStrip1的ItemAdded事件代码如下:
private void menuStrip1_ItemAdded(objectsender, ToolStripItemEventArgs e)
{
if(e.Item.Text.Length == 0 //隐藏子窗体图标
|| e.Item.Text == "最小化(&N)" //隐藏最小化按钮
|| e.Item.Text == "还原(&R)" //隐藏还原按钮
|| e.Item.Text == "关闭(&C)")//隐藏最关闭按钮
{
e.Item.Visible = false;
}
}
4.编译运行该该项目,点击工具栏上的Form1按钮,普通、最大化和最小化显示情况如下图所示,可见此时子窗体的图标在父窗体的菜单栏中已经消失,至此,任务完成,搞定。
<Normal>
<Maximize>
<Minimize>
[注意]:如果子窗体含有菜单的话,默认情况是子窗体的菜单会合并显示在父窗体的菜单上;如果不需要在父窗体菜单中显示,只需把父窗体菜单的AllowMerge属性设置为false即可。
子窗体From3
如果父窗体和子窗体菜单的属性AllowMerge=true时,显示情况如下所示:
当父窗体菜单的属性AllowMerge=false时,显示情况如下所示:
总结:父、子窗体的菜单是否合并显示在父窗体的菜单中根据具体需要来决定。