專案名稱: EIS
父視窗ToolStrip屬性Name: MainToolStrip
子視窗ToolStrip屬性Name: toolStrip1
建立介面 IChildBox 類別
在子視窗實作 IChildBox 介面
public partial class Form2 : Form,IChildBox
....
1. 由工具列拖曳(功能表與工具列)MenuStrip至MDI父視窗
由工具列拖曳(功能表與工具列)ToolStrip至MDI父視窗
2. 由工具列拖曳(功能表與工具列)MenuStrip至MDI子視窗
由工具列拖曳(功能表與工具列)ToolStrip至MDI子視窗
Visible屬性皆設置為false
3. 加入如下程式碼至MDI父視窗
protected override void OnMdiChildActivate(EventArgs e)
{
base.OnMdiChildActivate(e);
MergeChildToolStrip();
}
private void MergeChildToolStrip()
{
ToolStripManager.RevertMerge(MainToolStrip);
IChildBox box = ActiveMdiChild as IChildBox;
if (box != null)
{
ToolStripManager.Merge(box.OwnToolStrip, MainToolStrip);
}
}
4. 建立 IChildBox interface
在方案總管右鍵EIS專案 -> 加入類別
加入如下程式碼:
using System.Windows.Forms;
namespace EIS
{
internal interface IChildBox
{
ToolStrip OwnToolStrip
{
get;
}
}
}
5. 在 MDI 子視窗實作 IChildBox 介面
程式碼如下:
namespace EIS
{
public partial class Form2 : Form,IChildBox
{
public Form2()
{
InitializeComponent();
}
public ToolStrip OwnToolStrip
{
get
{
//toolStrip1为子窗体工具栏
return toolStrip1;
}
}
}
}
資料來源: Merging Mdi parent/child MenuStrip and ToolStrip
MDI窗体工具栏(ToolStrip)合并