c#菜單動(dòng)態(tài)合并的實(shí)現(xiàn)方法
說(shuō)明
在程序中經(jīng)常使用彈出菜單,并且一個(gè)窗體中可以存在多個(gè)彈出菜單。開發(fā)過(guò)MDI窗體的讀者可能都知道,當(dāng)MDI子窗體最大化時(shí),子窗體和主窗體的菜單能夠自動(dòng)的合并。這是如何實(shí)現(xiàn)的呢?本例實(shí)現(xiàn)了將兩個(gè)彈出菜單動(dòng)態(tài)的合并成一個(gè)彈出菜單的功能。實(shí)例效果如圖1.2所示。
要點(diǎn)
C# 2.0中已經(jīng)將彈出菜單封裝為Context MenuStrip控件,利用該控件中的Items對(duì)象可以操作菜單中的菜單項(xiàng)。該對(duì)象是ToolStripMenuItem類型,使用Items.AddRange( )方法可以向彈出菜單中添加菜單項(xiàng),該方法原型如下。
public void AddRange ( ToolStripItem[] toolStripItems )
參數(shù)說(shuō)明如下。
toolStripItems:控件的數(shù)組。
過(guò)程
(1)創(chuàng)建一個(gè)項(xiàng)目,將其命名為Ex01_02,默認(rèn)窗體為Form1。
(2)從工具箱中向Form1窗體添加一個(gè)MenuStrip控件用來(lái)設(shè)計(jì)菜單;同時(shí)向窗體添加ContextMenuStrip控件用來(lái)設(shè)計(jì)右鍵菜單;選中MenuStrip控件創(chuàng)建一個(gè)“打開子窗體”主菜單,然后選中ContextMenuStrip控件為其添加子項(xiàng)。
(3)為程序添加一個(gè)窗體,默認(rèn)名為Form2,同時(shí)向窗體添加ContextMenuStrip控件用來(lái)設(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}); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Winform界面中實(shí)現(xiàn)通用工具欄按鈕的事件處理方法
下面小編就為大家分享一篇Winform界面中實(shí)現(xiàn)通用工具欄按鈕的事件處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-11-11C# 實(shí)現(xiàn)Zookeeper分布式鎖的參考示例
Zookeeper分布式鎖的原理是巧妙的是使用了znode臨時(shí)節(jié)點(diǎn)的特點(diǎn)和監(jiān)聽(watcher)機(jī)制,監(jiān)聽機(jī)制很簡(jiǎn)單,就是我們可以給znode添加一個(gè)監(jiān)聽器,當(dāng)znode節(jié)點(diǎn)狀態(tài)發(fā)生改變時(shí)(如:數(shù)據(jù)內(nèi)容改變,節(jié)點(diǎn)被刪除),會(huì)通知到監(jiān)聽器。本文講解使用c#實(shí)現(xiàn)該功能2021-06-06C#中的Hangfire和Quartz.NET 任務(wù)調(diào)度的區(qū)別解析
Hangfire 和 Quartz.NET 是兩種常見的 C# 任務(wù)調(diào)度庫(kù),它們有不同的特點(diǎn)和使用場(chǎng)景,本文給大家介紹C#中的Hangfire和Quartz.NET 任務(wù)調(diào)度的區(qū)別,感興趣的朋友一起看看吧2024-08-08C#使用Exchange實(shí)現(xiàn)發(fā)送郵件
最近項(xiàng)目中需要用到exchange的操作,所以本文就參照msdn弄了一個(gè)簡(jiǎn)單的C#操作類,實(shí)現(xiàn)了發(fā)送郵件和拉取收件箱的功能,感興趣的小伙伴可以了解下2023-10-10C#實(shí)現(xiàn)AddRange為數(shù)組添加多個(gè)元素的方法
這篇文章主要介紹了C#實(shí)現(xiàn)AddRange為數(shù)組添加多個(gè)元素的方法,實(shí)例分析了AddRange方法的使用技巧,需要的朋友可以參考下2015-06-06C#實(shí)現(xiàn)的中國(guó)移動(dòng)官網(wǎng)手機(jī)號(hào)碼采集器
這篇文章主要介紹了C#實(shí)現(xiàn)的中國(guó)移動(dòng)官網(wǎng)手機(jī)號(hào)碼采集器,本文先是采集號(hào)碼入庫(kù),同時(shí)給出了篩選各類靚號(hào)的SQL語(yǔ)句,需要的朋友可以參考下2014-10-10