ContextMenuStrip の メニューの 2 階層目のイメージマージンを非表示にする

ContextMenuStrip の ShowImageMargin プロパティに False を設定すると、イメージマージンを非表示にできます。
しかし、複数階層のメニューであっても非表示になるのは 1 階層目のイメージマージンのみとなります。
そこで、以下の方法にて 2 階層目のイメージマージンを非表示にします。
※解説に用いた Visual Studio 2005 の Edition は、Team System Edition です。
サンプルのダウンロード

このカテゴリーの先頭へ このページの先頭へ

■サンプルの説明

コンテキストメニュー表示
2 階層目のメニューのイメージマージンが非表示で表示されます。

このカテゴリーの先頭へ このページの先頭へ

■コード

Form1.vb
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim context As ContextMenuStrip = New ContextMenuStrip

        ' 1 階層目を作成
        Dim firstMenu As ToolStripMenuItem = New ToolStripMenuItem()
        firstMenu.Text = "1 階層目"
        firstMenu.DisplayStyle = ToolStripItemDisplayStyle.Text
        context.Items.Add(firstMenu)

        ' 2 階層目を作成
        Dim secondMenu As ToolStripItem = New ToolStripMenuItem()
        secondMenu.Text = "2 階層目"
        secondMenu.DisplayStyle = ToolStripItemDisplayStyle.Text
        firstMenu.DropDownItems.Add(secondMenu)

        ' 1 階層目のイメージマージンを非表示にする
        context.ShowImageMargin = False
        ' 2 階層目のイメージマージンを非表示にする
        DirectCast(firstMenu.DropDown, ToolStripDropDownMenu).ShowImageMargin = False

        Me.ContextMenuStrip = context
    End Sub
End Class
このカテゴリーの先頭へ このページの先頭へ

■参考資料

ContextMenuStrip クラス
ToolStripDropDownMenu クラス