• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ContextMenuStripに追加したアイテムのチェックについて)

ContextMenuStripのアイテムにチェックを付ける方法は?

このQ&Aのポイント
  • フォームデザイナで作成したContextMenuStripにプログラム内でアイテムを追加し、そのアイテムにチェックを付ける方法を教えてください。
  • 後から追加したアイテムにCheckedプロパティがなく、チェックを付けることができません。
  • 環境はVB.NET、Microsoft Visual Basic 2008 Express Edition SP1です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

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

samalf
質問者

お礼

ありがとうございます、無事に動きました。 自分が試していた方法と全く違っていました……。 仰るとおり、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

関連するQ&A