WinForm设计之菜单控制

来源:互联网 发布:ins mac版 编辑:程序博客网 时间:2024/05/22 00:27

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首页的全是我的链接了,会影响别人的情绪.

原创粉丝点击