程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c# winform讀取xml創建菜單

c# winform讀取xml創建菜單

編輯:C#入門知識

 動態創建菜單使得程序靈活性大大增加,本文根據讀取xml文件中的配置菜單項來動態創建菜單,代碼如下:   using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WinformMenu.Helper; using System.Xml;   namespace WinformMenu {     public partial class FrmAddMenu : Form     {         public FrmAddMenu()         {               InitializeComponent();           }           private void FrmAddMenu_Load(object sender, EventArgs e)         {             MenuStrip menuS = new MenuStrip();             menuS.Parent = this;             string xmlFileName = @"F:\c#工程\WinformMenu\WinformMenu\XML\菜單.xml";             createMenu(xmlFileName, menuS);         }                           public void createMenu(string xmlFileName, MenuStrip menuS)         {                //1:根據XmlElement創建菜單             //XmlNode node = xmlHelper.GetXmlNode(xmlFileName, "//MangeTvMenu");             //foreach (XmlNode xml in node.ChildNodes)             //{             //    ToolStripMenuItem mainMenu=new ToolStripMenuItem();             //    mainMenu.Text = xml.Attributes["descript"].Value;             //    menuS.Items.Add(mainMenu);             //    if (xml.HasChildNodes)             //    {             //        CreateSubMenuByNode(xml, mainMenu);             //    }             //}             //2:根據XmlNode創建菜單             XmlElement xml = xmlHelper.GetXmlElement(xmlFileName);             foreach (XmlElement xel in xml.ChildNodes)             {                 ToolStripMenuItem mainMenu = new ToolStripMenuItem();                 mainMenu.Text = xel.Attributes["descript"].Value;                 menuS.Items.Add(mainMenu);                 if (xml.HasChildNodes)                 {                         CreateSubMenuByElement(xel, mainMenu);                 }             }                      }           /// <summary>         /// 根據node節點遞歸創建菜單         /// </summary>         /// <param name="xNode"></param>         /// <param name="menuItem"></param>         public void CreateSubMenuByNode(XmlNode xNode, ToolStripMenuItem menuItem)         {             foreach (XmlNode xml in xNode.ChildNodes)             {                 ToolStripMenuItem subMenu = new ToolStripMenuItem();                 if (xml.ChildNodes.Count > 1)                 {                     subMenu.Text = xml.Attributes["descript"].Value;                     menuItem.DropDown.Items.Add(subMenu);                     CreateSubMenuByNode(xml, subMenu);                 }                 else                 {                     subMenu.Text = xml.InnerText;                     menuItem.DropDown.Items.Add(subMenu);                 }             }         }           /// <summary>         /// 根據元素節點遞歸創建菜單         /// </summary>         /// <param name="xml"></param>         /// <param name="menuItem"></param>         public void CreateSubMenuByElement(XmlElement xml, ToolStripMenuItem menuItem)         {             foreach (XmlElement xel in xml.ChildNodes)             {                 ToolStripMenuItem subMenu = new ToolStripMenuItem();                 if (xel.ChildNodes.Count>1)                 {                     subMenu.Text = xel.Attributes["descript"].Value;                     menuItem.DropDown.Items.Add(subMenu);                     CreateSubMenuByElement(xel, subMenu);                 }                 else                 {                     subMenu.Text = xel.InnerText;                     menuItem.DropDown.Items.Add(subMenu);                 }             }         }  ///////////////////////////////////////////////////     } }   xml文件格式如下:   <?xml version="1.0" encoding="utf-8" ?> <MangeTvMenu descript="管理">   <Add descript="添加">     <Employee>員工</Employee>     <Deptment>部門</Deptment>   </Add>   <EmployeeInfo descript="員工信息">     <BaseInfo>個人基本信息</BaseInfo>     <StudyInfo>學歷信息</StudyInfo>     <MarryInfo>婚姻信息</MarryInfo>   </EmployeeInfo>   <DeptmentInfo descript="部門信息">     <dept1>部門1</dept1>     <dept2>部門2</dept2>   </DeptmentInfo>   <MoneyManage descript="工資管理">     <BaseMoney>基本工資</BaseMoney>     <OtherMoney>績效工資</OtherMoney>   </MoneyManage>   <Apply descript="申請">     <AddWork>加班</AddWork>     <ApplyWeek>請假</ApplyWeek>     <AddMoney>加薪</AddMoney>     <Another>其他</Another>   </Apply> </MangeTvMenu>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved