Author:水如烟
这个你不一定用到它,但有时候会用到它。比如,应用插件的时候,或者按角色权限配置菜单的时候。
使用它是相当简单,首先设计好菜单,然后保存了一个文件。使用时主程序MainForm加载菜单文件,绑定事件,就OK了。
你可以在保存菜单时附加密码,主程序加载菜单时要求验证密码,这样来保证菜单文件的完整性。由于加密方法各有方法,所以在此我没有具体实现,只给出一个空函数。
代码比较多,用上了以前的树和自联表的有关类,也对它进行了充实。代码会贴在辅助类代码和应用类代码专题。
先看菜单设计的界面,是这样的:
默认菜单是存于一个文本文件嵌为资源,加载后,是这样的:
现在,只取几项菜单,更新后存到一个"Test.mnu"文件去。同时也复制事件代码到测试的MainForm去。
测试窗体MainForm代码:
Imports lzmtw.uSystem.uWindows.uForms
Public Class MainForm
Dim m As LzmTW.uSystem.uWindows.uForms.uMainForm.Menu.MenuManager
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim mMenuStrip As New MenuStrip
Me.Controls.Add(mMenuStrip)
m = New LzmTW.uSystem.uWindows.uForms.uMainForm.Menu.MenuManager(mMenuStrip)
'读菜单文件
m.ReadFile("Test.mnu")
'绑定默认的Click事件
m.AddDefaultClickHandler()
End Sub
Protected Overridable Sub OnNewClick(ByVal sender As System.Object, ByVal e As System.EventArgs) ' New
MsgBox("New")
End Sub
Protected Overridable Sub OnOpenClick(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Open
MsgBox("Open")
End Sub
Protected Overridable Sub OnCloseClick(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Close
MsgBox("Close")
End Sub
Protected Overridable Sub OnConfigClick(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Config
MsgBox("Config")
End Sub
Protected Overridable Sub OnAboutClick(ByVal sender As System.Object, ByVal e As System.EventArgs) ' About
MsgBox("About")
End Sub
End Class
效果:
由于代码比较多,我分两天贴,要不,BLOG首页的全是我的链接了,会影响别人的情绪.