vs2005 没有mergeorder 如何实现两个窗体菜单的合并

aa806525280 2009-03-23 10:59:55
vs2005.net中如何实现两个窗体菜单的合并啊?

C#.net 2005中 父窗体与子窗体的菜单合并,我不知道用那个属性去实现,

请教大家一下.

vs2005.net 与vs2003.net不一样,2003的我知道怎么实现,但2005 的没有那个属性,就不知道怎么办了.
...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小明二号 2010-11-01
  • 打赏
  • 举报
回复
xiexie
heyu52 2009-03-24
  • 打赏
  • 举报
回复
合并菜单栏,工具栏,状态栏

protected override void OnMdiChildActivate(EventArgs e)
{
base.OnMdiChildActivate(e);

#region 先撤消所有的合并项

menuStrip.SuspendLayout();
ToolStripManager.RevertMerge(menuStrip);
menuStrip.ResumeLayout(false);
menuStrip.PerformLayout();

toolStrip.SuspendLayout();
ToolStripManager.RevertMerge(toolStrip);
toolStrip.ResumeLayout(false);
toolStrip.PerformLayout();

statusStrip.SuspendLayout();
ToolStripManager.RevertMerge(statusStrip);
statusStrip.ResumeLayout(false);
statusStrip.PerformLayout();

#endregion

#region 合并菜单栏,工具栏,状态栏

Form form = this.ActiveMdiChild;
if (form != null)
{
foreach (Control control in form.Controls)
{
//以下两种情况不可以互换位置,因为StatusStrip继承于ToolStrip
if (control is MenuStrip)
{
menuStrip.SuspendLayout();
ToolStripManager.Merge((MenuStrip)control, menuStrip);
menuStrip.ResumeLayout(false);
menuStrip.PerformLayout();
}

else if (control is StatusStrip)
{
statusStrip.SuspendLayout();
ToolStripManager.Merge(((StatusStrip)control), statusStrip);
statusStrip.ResumeLayout(false);
statusStrip.PerformLayout();
control.Visible = false;
}
else if (control is ToolStrip)
{
((ToolStrip)control).SuspendLayout();
ToolStripManager.Merge(((ToolStrip)control), this.toolStrip);
((ToolStrip)control).ResumeLayout(false);
((ToolStrip)control).PerformLayout();
control.Visible = false;
}
}
}

#endregion

}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧