說明數組
在程序中常用彈出菜單,而且一個窗體中能夠存在多個彈出菜單。開發過MDI窗體的讀者可能都知道,當MDI子窗體最大化時,子窗體和主窗體的菜單可以自動的合併。這是如何實現的呢?本例實現了將兩個彈出菜單動態的合併成一個彈出菜單的功能。實例效果如圖1.2所示。工具
要點this
C# 2.0中已經將彈出菜單封裝爲Context MenuStrip控件,利用該控件中的Items對象能夠操做菜單中的菜單項。該對象是ToolStripMenuItem類型,使用Items.AddRange( )方法能夠向彈出菜單中添加菜單項,該方法原型以下。spa
public void AddRange (設計
ToolStripItem[] toolStripItemscode
)orm
參數說明以下。對象
l toolStripItems:控件的數組。blog
過程ip
(1)建立一個項目,將其命名爲Ex01_02,默認窗體爲Form1。
(2)從工具箱中向Form1窗體添加一個MenuStrip控件用來設計菜單;同時向窗體添加ContextMenuStrip控件用來設計右鍵菜單;選中MenuStrip控件建立一個「打開子窗體」主菜單,而後選中ContextMenuStrip控件爲其添加子項。
(3)爲程序添加一個窗體,默認名爲Form2,同時向窗體添加ContextMenuStrip控件用來設計右鍵菜單,而後選中ContextMenuStrip控件爲其添加子項。
private void 打開自窗體ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f = new Form2(); f.MdiParent = this; f.Show();//顯示子窗體 f.Resize += new EventHandler(f_Resize); } void f_Resize(object sender, EventArgs e) { Form2 f = (Form2)sender; ToolStripMenuItem item = new ToolStripMenuItem(); for (int i = 0; i < f.contextMenuStrip2.Items.Count; )//合併菜單 { item.DropDownItems.Add(f.contextMenuStrip2.Items[i]); } this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { item}); }