最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)Winform動態(tài)添加菜單的方法

 更新時間:2015年05月16日 15:04:39   作者:永遠(yuǎn)愛好寫程序  
這篇文章主要介紹了C#實現(xiàn)Winform動態(tài)添加菜單的方法,涉及C#操作菜單的技巧,需要的朋友可以參考下

本文實例講述了C#實現(xiàn)Winform動態(tài)添加菜單的方法。分享給大家供大家參考。具體分析如下:

最近在做WINFORM開發(fā),一直都在為主界面的點擊事件及動態(tài)加載菜單苦腦?,F(xiàn)在已解決這個問題了,可以實現(xiàn)數(shù)據(jù)庫或都XML等配置完成動態(tài)生成菜單及事件加載。代碼如下:

private void Form1_Load(object sender, EventArgs e)
{
  //添加菜單一 
  ToolStripMenuItem subItem;
  subItem = AddContextMenu("入庫", menuStrip1.Items, null);
  //添加子菜單 
  AddContextMenu("添加入庫", subItem.DropDownItems, new EventHandler(MenuClicked));
  AddContextMenu("入庫管理", subItem.DropDownItems, new EventHandler(MenuClicked));
  //添加菜單二 
  subItem = AddContextMenu("出庫", menuStrip1.Items, null);
  //添加子菜單 
  AddContextMenu("添加出庫", subItem.DropDownItems, new EventHandler(MenuClicked));
  AddContextMenu("出庫管理", subItem.DropDownItems, new EventHandler(MenuClicked));
}
/// <summary>
/// 添加子菜單
/// </summary>
/// <param name="text">要顯示的文字,如果為 - 則顯示為分割線</param>
/// <param name="cms">要添加到的子菜單集合</param>
/// <param name="callback">點擊時觸發(fā)的事件</param>
/// <returns>生成的子菜單,如果為分隔條則返回null</returns>
ToolStripMenuItem AddContextMenu(string text, ToolStripItemCollection cms, EventHandler callback)
{
  if (text == "-")
  {
 ToolStripSeparator tsp = new ToolStripSeparator();
 cms.Add(tsp);
 return null;
  }
  else if (!string.IsNullOrEmpty(text))
  {
 ToolStripMenuItem tsmi = new ToolStripMenuItem(text);
 tsmi.Tag = text + "TAG";
 if (callback != null) tsmi.Click += callback;
 cms.Add(tsmi);
 return tsmi;
  }
  return null;
}
void MenuClicked(object sender, EventArgs e)
{
     //以下主要是動態(tài)生成事件并打開窗體
    //((sender as ToolStripMenuItem).Tag)強(qiáng)制轉(zhuǎn)換
  ObjectHandle t = Activator.CreateInstance("WinForms", "WinForms.Form2");
  Form f = (Form)t.Unwrap();
  f.ShowDialog();
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#使用LINQ查詢表達(dá)式的基本子句總結(jié)

    C#使用LINQ查詢表達(dá)式的基本子句總結(jié)

    這篇文章主要介紹了C#使用LINQ查詢表達(dá)式的基本子句總結(jié),在C#程序中我們可以使用LINQ基本查詢表達(dá)式模式來查詢和轉(zhuǎn)換SQL數(shù)據(jù)庫、ADO.NET數(shù)據(jù)集、XML文檔和流以及.NET集合中的數(shù)據(jù),需要的朋友可以參考下
    2016-03-03
  • C#異常捕獲機(jī)制圖文詳解

    C#異常捕獲機(jī)制圖文詳解

    在本文中我們給大家分享了關(guān)于C#異常捕獲機(jī)制的相關(guān)知識點內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-02-02
  • C#實現(xiàn)網(wǎng)頁畫圖功能

    C#實現(xiàn)網(wǎng)頁畫圖功能

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)網(wǎng)頁畫圖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 一種c#深拷貝方式完勝java深拷貝(實現(xiàn)上的對比分析)

    一種c#深拷貝方式完勝java深拷貝(實現(xiàn)上的對比分析)

    下面小編就為大家?guī)硪黄环Nc#深拷貝方式完勝java深拷貝(實現(xiàn)上的對比分析)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • C#序列化與反序列化實例

    C#序列化與反序列化實例

    這篇文章主要介紹了C#序列化與反序列化的實現(xiàn)方法,實例分析了序列化與反序列化的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2015-01-01
  • 深入理解C#之枚舉

    深入理解C#之枚舉

    這篇文章主要介紹了C#中可枚舉類型,IEnumerable和IEnumerator接口及其泛型實現(xiàn)和迭代器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#設(shè)置MDI子窗體只能彈出一個的方法

    C#設(shè)置MDI子窗體只能彈出一個的方法

    這篇文章主要介紹了C#設(shè)置MDI子窗體只能彈出一個的方法,很實用的技巧,需要的朋友可以參考下
    2014-08-08
  • C#使用正則表達(dá)式抓取網(wǎng)站信息示例

    C#使用正則表達(dá)式抓取網(wǎng)站信息示例

    這篇文章主要介紹了C#使用正則表達(dá)式抓取網(wǎng)站信息,結(jié)合實例形式分析了C#針對網(wǎng)頁信息的正則抓取操作相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • C# Console利用mspaint打開圖像并保存的方法

    C# Console利用mspaint打開圖像并保存的方法

    這篇文章主要介紹了C# Console利用mspaint打開圖像并保存的方法,涉及C#調(diào)用畫圖板操作圖片的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • C#多線程系列之線程的創(chuàng)建和生命周期

    C#多線程系列之線程的創(chuàng)建和生命周期

    這篇文章介紹了C#多線程系列之線程的創(chuàng)建和生命周期,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02

最新評論

岳西县| 景东| 孟州市| 额尔古纳市| 十堰市| 仙居县| 子洲县| 乌拉特中旗| 邓州市| 若羌县| 龙井市| 右玉县| 邵武市| 平度市| 赤水市| 宁津县| 密山市| 三门县| 成安县| 清水河县| 沂水县| 东山县| 金湖县| 望江县| 大名县| 江津市| 阿坝| 彰化县| 姚安县| 临朐县| 铜山县| 怀安县| 新和县| 三台县| 衡阳市| 明溪县| 城市| 洛隆县| 永定县| 正定县| 剑川县|