DOBON.NET DOBON.NETプログラミング掲示板過去ログ

contextMenuStripの深い階層にアイテムを動的に追加

環境/言語:[OS : Windows XP / 言語 : Visual Basic .NET / .NET Framework : 2.0]
分類:[.NET]

よろしくおねがいします。

【解決したい問題】

contextMenuStripの深い階層にアイテムを動的に追加したいのですが、やり方がわかりません。

【解決するために何をしたか】

contextMenuStripにアイテムを動的に追加するには
contextMenuStrip1.items.Add("なにがし")
とすれば良いことはわかりました。

しかしこの要素のさらに下に追加したいのですが、わかりません。
この追加した”なにがし”はToolStripMenuItemであるため
そこに追加すれば良いのかと思いましたが
ToolStripMenuItemにはaddメソッドはありませんよね・・・

デザイナでは簡単にできるので、
できないはずはないと思うのですが、どうしてもわかりませんでした。。。
■No30073に返信(やまさんの記事)
> contextMenuStrip1.items.Add("なにがし")
> しかしこの要素のさらに下に追加したいのですが、わかりません。
> この追加した”なにがし”はToolStripMenuItemであるため
> そこに追加すれば良いのかと思いましたが

.Items.Add メソッドには幾つかのオーバーロードがありますが、
そのいずれを選んでも、「ToolStripItem」が追加されることになります。

やまさんは、ToolStripMenuItem が追加されると書かれていましたが、
実はそれは、ToolStripItem の派生クラスの一種に過ぎません。
Add(String) の代わりに Add(ToolStripItem) のオーバーロードを使えば、
ToolStripMenuItem 以外の項目も利用できますよ。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.toolstripitem.aspx


> ToolStripMenuItemにはaddメソッドはありませんよね・・・
それを言ったら、ContextMenuStrip にも Add メソッドはありませんよね。
ContextMenuStrip1.Items.Add のようには書けますけれども。

ToolStripMenuItem もそれと同様です。こちらは .Items.Add ではありませんが、
それとよく似た構文にて、ドロップダウン項目を Add することができますので、
ToolStripMenuItem のメンバー一覧を、もう一度よく探してみてください。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.toolstripmenuitem_members.aspx
ありがとうございます!

ToolStripMenuItem.DropDownItems.Add()

ですね!

助かりました!



■No30074に返信(魔界の仮面弁士さんの記事)

>>ToolStripMenuItemにはaddメソッドはありませんよね・・・
> それを言ったら、ContextMenuStrip にも Add メソッドはありませんよね。
> ContextMenuStrip1.Items.Add のようには書けますけれども。
>
> ToolStripMenuItem もそれと同様です。こちらは .Items.Add ではありませんが、
> それとよく似た構文にて、ドロップダウン項目を Add することができますので、
> ToolStripMenuItem のメンバー一覧を、もう一度よく探してみてください。
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.toolstripmenuitem_members.aspx
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板