自已设定菜单Xml,软件自动加载

本文介绍了一个基于XML配置文件创建菜单系统的实现方法。该系统通过解析XML文件中的菜单定义,自动生成应用程序的菜单项。文中提供了具体的XML配置示例及创建菜单的C#代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建Xml文件(此处不再描述怎么创建了~~)

<?xml version="1.0" encoding="UTF-8"?>
<MainMenu>
 <Menu Name="文件(&amp;F)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True">
  <Menu Name="新建(&amp;N)" Shortcut="CtrlN" Icon="New" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="打开(&amp;O)..." Shortcut="CtrlO" Icon="Open" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="保存(&amp;S)" Shortcut="CtrlS" Icon="Save" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="另存为(&amp;A)..." Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="-" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="退出(&amp;X)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
 </Menu>
 <Menu Name="编辑(&amp;E)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True">
  <Menu Name="剪切(&amp;X)" Shortcut="CtrlX" Icon="Cut" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="复制(&amp;C)" Shortcut="CtrlC" Icon="Copy" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="粘贴(&amp;P)" Shortcut="CtrlV" Icon="Paste" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="-" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="全选(&amp;A)" Shortcut="CtrlA" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="-" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="查找(&amp;F)..." Shortcut="CtrlF" Icon="Find" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="-" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="查找(在当前文件)(&amp;U)" Shortcut="CtrlL" Icon="Find" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="查找下一个(&amp;N)" Shortcut="F3" Icon="" Checked="False" Radio="False" Enabled="True"/>
 </Menu>
 <Menu Name="工具(&amp;T)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True">
  <Menu Name="重新加载根目录(&amp;R)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="重新加载当前目录(&amp;C)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
 </Menu>
 <Menu Name="帮助(&amp;H)" Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True">
  <Menu Name="使用介绍(&amp;S)..." Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="注册(&amp;R)..." Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="作者(&amp;U)..." Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
  <Menu Name="关于(&amp;A)..." Shortcut="" Icon="" Checked="False" Radio="False" Enabled="True"/>
 </Menu>
</MainMenu> 

创建一个公共函数

public MenuItem[] CreateMainMenu()
{
    string filename = Application.StartupPath + @"/MenuDefine.xml";
    XmlDocument document = new XmlDocument();
    document.Load(filename);
    XmlNodeList childNodes = document.DocumentElement.ChildNodes;
    MenuItem[] itemArray = new MenuItem[childNodes.Count];
    int num = 0;
    foreach (XmlElement element in childNodes)
    {
        itemArray[num++] = this.ProcessMenuItem(element);
    }
    return itemArray;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值