使用C 使選單動態合併

2021-05-25 21:42:52 字數 905 閱讀 9287

在程式中經常使用彈出選單,並且乙個窗體中可以存在多個彈出選單。開發過mdi窗體的讀者可能都知道,當mdi子窗體最大化時,子窗體和主窗體的選單能夠自動的合併。這是如何實現的呢?本例實現了將兩個彈出選單動態的合併成乙個彈出選單的功能。例項效果如圖所示。

c# 2.0中已經將彈出選單封裝為context menustrip控制項,利用該控制項中的items物件可以操作選單中的選單項。該物件是toolstripmenuitem型別,使用items.addrange( )方法可以向彈出選單中新增選單項,該方法原型如下。

public void addrange (

toolstripitem toolstripitems

)引數說明如下。

toolstripitems:控制項的陣列。

(1)建立乙個專案,將其命名為ex01_02,預設窗體為form1。

(2)從工具箱中向form1窗體新增乙個menustrip控制項用來設計選單;同時向窗體新增contextmenustrip控制項用來設計右鍵選單;選中menustrip控制項建立乙個「開啟子窗體」主選單,然後選中contextmenustrip控制項為其新增子項。

(3)為程式新增乙個窗體,預設名為form2,同時向窗體新增contextmenustrip控制項用來設計右鍵選單,然後選中contextmenustrip控制項為其新增子項。

(4)主要程式**。

private void 開啟自窗體toolstripmenuitem_click(object sender, eventargs e)

void f_resize(object sender, eventargs e)

this.contextmenustrip1.items.addrange(new system.windows.forms.toolstripitem );

}——摘自《c#程式設計詞典》

C 動態載入樹選單

在做許可權系統的時候,需要有乙個樹形的選單。下圖就是乙個樹形選單的樣式 但問題是,我們可以實現寫死的樹形選單。什麼是寫死的?就是在前台 中寫好要載入的樹形選單是什麼樣子的。但是我們許可權系統的要求是動態載入樹形選單,也就是根據資料庫裡面表的內容動態載入。我首先要說的就是資料庫設計,要想動態載入成樹形...

C 動態載入樹選單

在做許可權系統的時候,需要有乙個樹形的選單。下圖就是乙個樹形選單的樣式 但問題是,我們可以實現寫死的樹形選單。什麼是寫死的?就是在前台 中寫好要載入的樹形選單是什麼樣子的。但是我們許可權系統的要求是動態載入樹形選單,也就是根據資料庫裡面表的內容動態載入。我首先要說的就是資料庫設計,要想動態載入成樹形...

C 中選單合併的幾點心得

mdi程式中,子窗體選單缺省會合併到主窗體選單中去.設定合併選單時,只需要設定子窗體中選單項,與主窗體中的選單設定無關.合併的原則採用的是匹配的原則,系統首先匹配兩個選單項的text屬性,如不匹配則再匹配mergeindex屬性.合併方式有 insert 將該項插入目標集合中的匹配項前。如果匹配項在...