以下代码适用于自定义菜单条。我试图弄清楚如何访问当前打开的表单,以便我可以将其关闭。我基本上尝试做的是当用户点击导航到当前的新表单时运行“ActiveForm.Close()”。
感谢您的帮助!
Public Class MenuStripCustom
Inherits MenuStrip
Private WithEvents NavToolStrip As New ToolStripMenuItem("File")
Private WithEvents NavMainMenu As New ToolStripMenuItem("Main Menu")
Private WithEvents NavSignOut As New ToolStripMenuItem("Sign Out")
Private WithEvents NavExit As New ToolStripMenuItem("Exit")
Sub New()
Me.Items.Add(NavToolStrip)
NavToolStrip.DropDownItems.Add(NavMainMenu)
NavToolStrip.DropDownItems.Add(NavSignOut)
NavToolStrip.DropDownItems.Add(NavExit)
End Sub
' All forms
Private Sub NavExit_Click(sender As Object, e As EventArgs) Handles NavExit.Click
Application.Exit()
End Sub
Private Sub NavMainMenu_Click(sender As Object, e As EventArgs) Handles NavMainMenu.Click
'MainMenu.visible = true
'ActiveForm.Close()
End Sub
结束班
编辑:没有为类定义'ActiveForm',因为这是一个MenuStrip对象。当我把这个对象放在一个表单上时,我不确定如何通过这个类访问当前表单。我在代码的底部注释了我想要做的事情。抱歉混淆。
答案 0 :(得分:2)
您可以使用以下静态属性访问活动表单:
Form.ActiveForm
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.activeform.aspx
答案 1 :(得分:1)
单击“文件/退出”时,可以设置MenuStripCustom类以引发事件。您的表单将需要一个事件处理程序,用于该事件可以自行关闭。
在MenuStripCustom中:
Public event ExitClicked
在NavExit_Click中:
RaiseEvent ExitClicked
以您的形式:
Sub Exit() handles MyMenuStripCustomInstance.ExitClicked
me.close
End Sub
希望你越来越接近让它全部工作了。