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
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首页的全是我的链接了,会影响别人的情绪.
- WinForm设计之菜单控制
- 控制WinForm中右键菜单
- WinForm设计之状态栏
- WinForm设计之ToolPanel
- WinForm设计之ToolPanelTree
- WinForm设计之UBindingNavigator
- WinForm设计之配置文件
- WinForm设计之插件
- 控制WinForm中右键菜单的弹出位置
- winform菜单
- WinForm设计之About窗体
- WinForm设计之主窗体
- WinForm winform动态生成菜单
- C#Winform 窗体之创建动态上下文菜单
- Winform控件之菜单控件,工具栏控件和状态栏控件
- C#之winform基础 为listbox添加右键菜单
- WinForm设计之初始窗体(SplashScreenForm)
- WinForm设计之进度消息提示窗体
- java调用运行命令
- 历史永远不会重演,却总有他惊人的相似之处
- 什么是Web Service?
- LinuxFAQ
- 枕畔呓语
- WinForm设计之菜单控制
- Linux必学的重要命令
- 贪吃蛇代码
- C语言单元测试
- VC ++ 中strstr来自哪个头文件
- qreader无法进入的解决方法
- 连接oracle数据库及故障解决办法一览
- strstr()的简单实现
- 西暦→和暦--->系统函数!!