說明
在程序中經(jīng)常使用彈出菜單,并且一個窗體中可以存在多個彈出菜單。開發(fā)過MDI窗體的讀者可能都知道,當(dāng)MDI子窗體最大化時,子窗體和主窗體的菜單能夠自動的合并。這是如何實(shí)現(xiàn)的呢?本例實(shí)現(xiàn)了將兩個彈出菜單動態(tài)的合并成一個彈出菜單的功能。實(shí)例效果如圖1.2所示。
要點(diǎn)
C# 2.0中已經(jīng)將彈出菜單封裝為Context MenuStrip控件,利用該控件中的Items對象可以操作菜單中的菜單項(xiàng)。該對象是ToolStripMenuItem類型,使用Items.AddRange( )方法可以向彈出菜單中添加菜單項(xiàng),該方法原型如下。
public void AddRange ( ToolStripItem[] toolStripItems)
參數(shù)說明如下。
toolStripItems:控件的數(shù)組。
過程
(1)創(chuàng)建一個項(xiàng)目,將其命名為Ex01_02,默認(rèn)窗體為Form1。
(2)從工具箱中向Form1窗體添加一個MenuStrip控件用來設(shè)計(jì)菜單;同時向窗體添加ContextMenuStrip控件用來設(shè)計(jì)右鍵菜單;選中MenuStrip控件創(chuàng)建一個“打開子窗體”主菜單,然后選中ContextMenuStrip控件為其添加子項(xiàng)。
(3)為程序添加一個窗體,默認(rèn)名為Form2,同時向窗體添加ContextMenuStrip控件用來設(shè)計(jì)右鍵菜單,然后選中ContextMenuStrip控件為其添加子項(xiàng)。
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}); }以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選