手机
当前位置:查字典教程网 >编程开发 >C#教程 >c# winform读取xml文件创建菜单的代码
c# winform读取xml文件创建菜单的代码
摘要:复制代码代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Compo...

复制代码 代码如下:

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#工程WinformMenuWinformMenuXML菜单.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>

【c# winform读取xml文件创建菜单的代码】相关文章:

c#使用linq技术创建xml文件的小例子

C#读取QQ纯真IP数据库QQWry.Dat的代码

C#计算两个文件的相对目录算法的实例代码

C# Linq读取XML文件的实例

c# winform多线程的小例子

c#文件的复制,移动,创建(实例代码)

c#给图片添加文字的代码小结

c#获取本机的IP地址的代码

C#软件注册码的实现代码

c#根据文件类型获取相关类型图标的方法代码

精品推荐
分类导航