ContextMenuStrip.Itemsからメニューアイテムを取得しているのではないでしょうか?このプロパティの戻り値はToolStripItemなので、ToolStripMenuItemに変換しないとCheckedは使えません。
Dim clsMenu As New Windows.Forms.ContextMenuStrip()
clsMenu.Items.Add("メニュー1").Name = "Menu1"
CType(clsMenu.Items("Menu1"), Windows.Forms.ToolStripMenuItem).Checked = True
質問者
お礼
ありがとうございます、無事に動きました。
自分が試していた方法と全く違っていました……。
仰るとおり、ToolStripMenuItemに変換せずにずっと悩んでいました……。
また一つ勉強になりました。ありがとうございます。
↓のようにプログラムを書き換えたところ、無事に動作しました。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Example As String() = System.IO.File.ReadAllLines("example.txt", System.Text.Encoding.GetEncoding(932))
For Each i As String In Example
ContextMenuStrip1.Items.Add(i).Name = i & "ToolStripMenuItem"
Next
AddHandler ContextMenuStrip1.ItemClicked, AddressOf ToolStripMenuItem_ItemClick
ListView1.ContextMenuStrip = ContextMenuStrip1
End Sub
Private Sub ToolStripMenuItem_ItemClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs)
CType(ContextMenuStrip1.Items(e.ClickedItem.Text & "ToolStripMenuItem"), ToolStripMenuItem).Checked = True
End Sub
お礼
ありがとうございます、無事に動きました。 自分が試していた方法と全く違っていました……。 仰るとおり、ToolStripMenuItemに変換せずにずっと悩んでいました……。 また一つ勉強になりました。ありがとうございます。 ↓のようにプログラムを書き換えたところ、無事に動作しました。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Example As String() = System.IO.File.ReadAllLines("example.txt", System.Text.Encoding.GetEncoding(932)) For Each i As String In Example ContextMenuStrip1.Items.Add(i).Name = i & "ToolStripMenuItem" Next AddHandler ContextMenuStrip1.ItemClicked, AddressOf ToolStripMenuItem_ItemClick ListView1.ContextMenuStrip = ContextMenuStrip1 End Sub Private Sub ToolStripMenuItem_ItemClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) CType(ContextMenuStrip1.Items(e.ClickedItem.Text & "ToolStripMenuItem"), ToolStripMenuItem).Checked = True End Sub