
質問させてください。
フォームデザイナで作成したContextMenuStripにプログラム内でアイテムを追加し(アイテム数は可変)、そのアイテムにチェックを付けたいと思っています。
しかし、Checkedプロパティが見つからず、チェックを付けることができません。
フォームデザイナでアイテムを追加するとCheckedの項目があって、それをTrueにすることでチェックが付けられるのですが……
後から追加したアイテムにチェックを付ける方法をご存知の方がいらしたら、ご教授お願いします……。
環境は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
ありがとうございます、無事に動きました。
自分が試していた方法と全く違っていました……。
仰るとおり、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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コントロールの存在確認
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
VB.NETでフォームロード中のエ...
-
VBA コンボボックスとテキスト...
-
Excelにて、ユーザーフォームで...
-
フォームに引数を渡す方法のやり方
-
フォームの位置を取得したい
-
クリックイベントなのに、2回ク...
-
VBA(エクセル)のユーザー...
-
【VBAユーザーフォームで閉じる...
-
ACCESSのフォーム、開くんです...
-
Excelのユーザーフォームのテキ...
-
フォームウィンドウを最前面に...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
Microsoft Formsの「個人情報や...
-
VBAのテキストフォームの折り返...
-
ユーザーフォームのコピー?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
-
Form_Load と Form_Activate の...
-
VBAでユーザーフォームを再表示...
-
クリックイベントなのに、2回ク...
-
ユーザーフォーム上に現在日時...
-
テキストボックス入力データの...
-
VBAのテキストフォームの折り返...
-
ACCESSのフォーム、開くんです...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
エクセルVBAのフォームを最...
-
モーダルフォームとモードレス...
-
EXCEL VBA ユーザーフォームの...
-
フォームのテキストボックスな...
-
コントロールの存在確認
-
パソコンの画面に合わせてユー...
-
フォームウィンドウを最前面に...
-
Accessで、一つのフォーム画面...
おすすめ情報