MenuStrip in Visual Basic .NET



有人可以向我解释为什么吗?当我尝试设置按名称调用它的 MenuStrip 项时,它会给我一个例外?

示例中

发生类型为"System.NullReferenceException"的未处理异常.exe

其他信息:对象引用未设置为对象的实例。

以下任一语句都会导致错误。

frmMenu.MenuStripfrmMenu.Items(key:="Enter").Enabled = False
frmMenu.MenuStripfrmMenu.Items("Enter").Enabled = False

但是,当我使用整数调用 Items 时,它可以完美运行。

您必须使用菜单项的 name 属性,而不是 text 属性:

Public Sub New()
  InitializeComponent()
  Dim menu As New MenuStrip
  Dim menuOne As New ToolStripMenuItem("Menu One") With {.Name = "menuOne"}
  Dim menuTwo As New ToolStripMenuItem("Menu Two") With {.Name = "menuTwo"}
  menu.Items.Add(menuOne)
  menu.Items.Add(menuTwo)
  Me.Controls.Add(menu)
  menu.Items("menuOne").Enabled = False
  AddHandler menu.Items("menuTwo").Click, AddressOf Menu_Click
End Sub
Private Sub Menu_Click(ByVal sender As Object, ByVal e As EventArgs)
  MessageBox.Show("This menu works.")
End Sub

相关内容

  • 没有找到相关文章

最新更新