是否有更优雅或有效的方式来编写我的一些代码?
特别是,我在所有表单上都有一个工具条。每个表单都有自己的一组方法,基本上是做同样的事情。有没有办法删除所有方法保存一个,然后将它包含在我的表单特定变量的switch语句中?
我所说的一个例子:
'Form 1
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Application.Exit()
End Sub
'Form 2
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Application.Exit()
End Sub
我可以删除其中一个,并将另一个移到另一个模块,让它同时代理form1和form2吗?
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles [myWholeDangProject].ExitToolStripMenuItem.Click
Application.Exit()
End Sub
答案 0 :(得分:0)
无法将WithEvents事件定向到共享模块。但是,就像你说的那样,共享类或VB.NET模块可以保存可以从两个控制事件处理程序调用的子例程。
你可以创建一个共享事件处理程序,但是你必须使用AddHandler关键字来实际将代码附加到事件中,尽管在大多数情况下只是直接调用sub会更容易。
答案 1 :(得分:0)
是的,使用Addhandler和AddressOf在表单初始化时连接事件。
AddHandler ExitToolStripMenuItem.Click, AddressOf MyModule.ExitHandler
和
Public Sub ExitHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
Application.Exit()
End Sub