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

c# winform讀取xml文件創(chuàng)建菜單的代碼

 更新時(shí)間:2013年09月17日 15:52:00   作者:  
動(dòng)態(tài)創(chuàng)建菜單使得程序靈活性大大增加,本文根據(jù)讀取xml文件中的配置菜單項(xiàng)來(lái)動(dòng)態(tài)創(chuàng)建菜單,代碼如下
復(fù)制代碼 代碼如下:

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:根據(jù)XmlElement創(chuàng)建菜單
            //XmlNode node = xmlHelper.GetXmlNode(xmlFileName, "http://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:根據(jù)XmlNode創(chuàng)建菜單
            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>
        /// 根據(jù)node節(jié)點(diǎn)遞歸創(chuàng)建菜單
        /// </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>
        /// 根據(jù)元素節(jié)點(diǎn)遞歸創(chuàng)建菜單
        /// </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文件格式如下:
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8" ?>
<MangeTvMenu descript="管理">
  <Add descript="添加">
    <Employee>員工</Employee>
    <Deptment>部門(mén)</Deptment>
  </Add>
  <EmployeeInfo descript="員工信息">
    <BaseInfo>個(gè)人基本信息</BaseInfo>
    <StudyInfo>學(xué)歷信息</StudyInfo>
    <MarryInfo>婚姻信息</MarryInfo>
  </EmployeeInfo>
  <DeptmentInfo descript="部門(mén)信息">
    <dept1>部門(mén)1</dept1>
    <dept2>部門(mén)2</dept2>
  </DeptmentInfo>
  <MoneyManage descript="工資管理">
    <BaseMoney>基本工資</BaseMoney>
    <OtherMoney>績(jī)效工資</OtherMoney>
  </MoneyManage>
  <Apply descript="申請(qǐng)">
    <AddWork>加班</AddWork>
    <ApplyWeek>請(qǐng)假</ApplyWeek>
    <AddMoney>加薪</AddMoney>
    <Another>其他</Another>
  </Apply>
</MangeTvMenu>

相關(guān)文章

  • Unity shader實(shí)現(xiàn)遮罩效果

    Unity shader實(shí)現(xiàn)遮罩效果

    這篇文章主要為大家詳細(xì)介紹了Unity shader實(shí)現(xiàn)遮罩效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#數(shù)據(jù)庫(kù)操作類(lèi)AccessHelper實(shí)例

    C#數(shù)據(jù)庫(kù)操作類(lèi)AccessHelper實(shí)例

    這篇文章主要介紹了C#數(shù)據(jù)庫(kù)操作類(lèi)AccessHelper實(shí)例,可實(shí)現(xiàn)針對(duì)access數(shù)據(jù)庫(kù)的各種常見(jiàn)操作,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#調(diào)用python腳本的方法詳解

    C#調(diào)用python腳本的方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#調(diào)用python腳本的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • c#窗體傳值用法實(shí)例詳解

    c#窗體傳值用法實(shí)例詳解

    這篇文章主要介紹了c#窗體傳值用法,以實(shí)例形式較為詳細(xì)的分析了C#窗體傳值的各種常用技巧,需要的朋友可以參考下
    2015-06-06
  • C#_SqlDependency的使用詳解

    C#_SqlDependency的使用詳解

    SqlDependency對(duì)象表示應(yīng)用程序和 SQL Server 實(shí)例間的查詢(xún)通知依賴(lài)關(guān)系,這篇文章主要介紹了C#_SqlDependency的使用,需要的朋友可以參考下
    2023-06-06
  • C#中把Json數(shù)據(jù)轉(zhuǎn)為DataTable

    C#中把Json數(shù)據(jù)轉(zhuǎn)為DataTable

    這篇文章介紹了C#中把Json數(shù)據(jù)轉(zhuǎn)為DataTable的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#實(shí)現(xiàn)的AES加密解密完整實(shí)例

    C#實(shí)現(xiàn)的AES加密解密完整實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的AES加密解密,結(jié)合完整實(shí)例形式分析了C#實(shí)現(xiàn)的AES算法進(jìn)行加密與解密的相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • C#的WEBBROWSER與JS交互小結(jié)

    C#的WEBBROWSER與JS交互小結(jié)

    這篇文章主要介紹了C#的WEBBROWSER與JS交互方法,詳細(xì)講述了與頁(yè)面標(biāo)簽的交互以及數(shù)據(jù)交互的方法,需要的朋友可以參考下
    2014-11-11
  • 簡(jiǎn)單實(shí)現(xiàn)winform編輯器

    簡(jiǎn)單實(shí)現(xiàn)winform編輯器

    這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)winform編輯器,功能很簡(jiǎn)單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • c#通過(guò)進(jìn)程調(diào)用cmd判斷登錄用戶(hù)權(quán)限代碼分享

    c#通過(guò)進(jìn)程調(diào)用cmd判斷登錄用戶(hù)權(quán)限代碼分享

    最近自己開(kāi)發(fā)軟件需要讀取本地配置文件,因?yàn)榈卿浻脩?hù)的權(quán)限不夠會(huì)導(dǎo)致無(wú)法讀取文件進(jìn)而導(dǎo)致程序崩潰,查了一些解決方法,代碼分享如下
    2013-12-12

最新評(píng)論

海林市| 上林县| 贡山| 舟山市| 临汾市| 绩溪县| 江阴市| 达孜县| 商洛市| 仙居县| 讷河市| 辉南县| 清徐县| 中宁县| 漾濞| 东港市| 疏勒县| 东丰县| 甘谷县| 上饶市| 汪清县| 宜川县| 运城市| 梓潼县| 永泰县| 都兰县| 姜堰市| 神农架林区| 锡林郭勒盟| 颍上县| 正蓝旗| 临沭县| 子长县| 达拉特旗| 平塘县| 化德县| 隆回县| 浠水县| 瑞金市| 靖安县| 香格里拉县|