65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 XML 在 WinForm 应用程序中动态构建 MainMenu – 第二部分

2004年2月8日

viewsIcon

76759

downloadIcon

596

在 WinForm 应用程序中使用 XML 动态构建 MainMenu。

引言

在我的上一篇文章中,我解释了如何使用 XML 创建一个动态菜单。那是一种非常基本的方法。在那里,我们无法进行任何验证,例如 MenuItem 的启用或禁用、图标设置等。 在本文中,我扩展了 XML 的使用。

构建菜单

我修改了 XML 格式。 以下是 XML 文件格式

<Records>
<MenuItem>
<MenuID>FILE</MenuID>
<MenuName>File</MenuName>
<MenuParent></MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>NEW</MenuID>
<MenuName>New</MenuName>
<MenuParent>FILE</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>OPEN</MenuID>
<MenuName>Open</MenuName>
<MenuParent>FILE</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>EXIT</MenuID>
<MenuName>Exit</MenuName>
<MenuParent>FILE</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>DOC</MenuID>
<MenuName>Document File</MenuName>
<MenuParent>NEW</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>TXT</MenuID>
<MenuName>Text File</MenuName>
<MenuParent>NEW</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>HTML</MenuID>
<MenuName>HTML File</MenuName>
<MenuParent>NEW</MenuParent>
<Enable>N</Enable>
</MenuItem>
<MenuItem>
<MenuID>EDIT</MenuID>
<MenuName>Edit</MenuName>
<MenuParent></MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>COPY</MenuID>
<MenuName>Copy</MenuName>
<MenuParent>EDIT</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>PASTE</MenuID>
<MenuName>Paste</MenuName>
<MenuParent>EDIT</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>HELP</MenuID>
<MenuName>Help</MenuName>
<MenuParent></MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>HHELP</MenuID>
<MenuName>Help</MenuName>
<MenuParent>HELP</MenuParent>
<Enable>Y</Enable>
</MenuItem>
<MenuItem>
<MenuID>ABOUT</MenuID>
<MenuName>About</MenuName>
<MenuParent>HELP</MenuParent>
<Enable>Y</Enable>
</MenuItem>
</Records>

我稍微修改了 CreateMenuItems 以使用 DataSet

Code

菜单将显示如下

Menu Design

最后

我认为这展示了如何在 MainMenu 中实现安全性,任何帮助和/或评论都将不胜感激!

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.