[MenuStrip][Tips] メニュー項目にイメージを表示する

メニュー項目にイメージを表示するにはImageクラスFromFileメソッドを使用します。

例えば C:\Work\NewDocumentHS.BMPをメニュー項目「新規作成」のイメージとして設定する例を見てみましょう。

C:\Work\NewDocumentHS.BMP は下記画像で16×16のBMPファイルです。

まず、メニュー項目「新規作成」を作成し、Imageプロパティに表示する画像を設定します。

次に、NewDocumentHS.BMP の黒の部分を透過するために ImageTransparentColorプロパティにColors.Blackを設定します。

VBの例

'表示するイメージの設定
menuFileNew.Image = Image.FromFile("C:\Work\NewDocumentHS.BMP")
'透過色(ここでは黒)の設定
menuFileNew.ImageTransparentColor = Color.Black

C#の例

// 表示するイメージの設定
menuFileNew.Image = Image.FromFile(@"C:\Work\NewDocumentHS.BMP");
// 透過色(ここでは黒)の設定
menuFileNew.ImageTransparentColor = Color.Black;

上記のようにするとメニュー項目(この例では「新規作成」)の脇にイメージが表示されます。

上記を踏まえてメニューにイメージを表示する例を下記に示します。

VBの例

' フォームロード時の処理
Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim menuFile As New ToolStripMenuItem               'ファイル(&F)
    Dim menuFileNew As New ToolStripMenuItem            '新規作成(&N)
    Dim menuFileOpen As New ToolStripMenuItem           '開く(&O)
    Dim menuFileSeparator1 As New ToolStripSeparator    'セパレーター
    Dim menuFileSaveAs As New ToolStripMenuItem         '名前を付けて保存(&A)
    Dim menuFileSave As New ToolStripMenuItem           '上書き保存(&S)
    Dim menuFileSeparator2 As New ToolStripSeparator    'セパレーター
    Dim menuFileEnd As New ToolStripMenuItem            '終了(&X)

    '項目の設定
    menuFile.Text = "ファイル(&F)"
    menuFileNew.Text = "新規作成(&N)"
    menuFileOpen.Text = "開く(&O)"
    menuFileSaveAs.Text = "名前を付けて保存(&A)"
    menuFileSave.Text = "上書き保存(&S)"
    menuFileEnd.Text = "終了(&X)"

    '★★★ 各メニューにイメージを設定する ★★★
    menuFileNew.Image = Image.FromFile("C:\Work\NewDocumentHS.BMP")
    menuFileNew.ImageTransparentColor = Color.Black
    menuFileOpen.Image = Image.FromFile("C:\Work\openfolderHS.bmp")
    menuFileOpen.ImageTransparentColor = Color.Black
    menuFileSaveAs.Image = Image.FromFile("C:\Work\saveHS.bmp")
    menuFileSaveAs.ImageTransparentColor = Color.Black
    menuFileSave.Image = Image.FromFile("C:\Work\SaveAllHS.bmp")
    menuFileSave.ImageTransparentColor = Color.Black

    '[ファイル(F)]項目に子項目を追加する
    menuFile.DropDownItems.Add(menuFileNew)
    menuFile.DropDownItems.Add(menuFileOpen)
    menuFile.DropDownItems.Add(menuFileSeparator1)
    menuFile.DropDownItems.Add(menuFileSaveAs)
    menuFile.DropDownItems.Add(menuFileSave)
    menuFile.DropDownItems.Add(menuFileSeparator2)
    menuFile.DropDownItems.Add(menuFileEnd)

    '[ファイル(F)]をメニューに追加する
    MenuStrip1.Items.Add(menuFile)
End Sub

C#の例

// フォームロード時の処理
private void Form4_Load(object sender, EventArgs e)
{
    ToolStripMenuItem menuFile = new ToolStripMenuItem();               // ファイル(&F)
    ToolStripMenuItem menuFileNew = new ToolStripMenuItem();            // 新規作成(&N)
    ToolStripMenuItem menuFileOpen = new ToolStripMenuItem();           // 開く(&O)
    ToolStripSeparator menuFileSeparator1 = new ToolStripSeparator();   // セパレーター
    ToolStripMenuItem menuFileSaveAs = new ToolStripMenuItem();         // 名前を付けて保存(&A)
    ToolStripMenuItem menuFileSave = new ToolStripMenuItem();           // 上書き保存(&S)
    ToolStripSeparator menuFileSeparator2 = new ToolStripSeparator();   // セパレーター
    ToolStripMenuItem menuFileEnd = new ToolStripMenuItem();            // 終了(&X)

    // ★★★項目の設定★★★
    menuFile.Text = "ファイル(&F)";
    menuFileNew.Text = "新規作成(&N)";
    menuFileOpen.Text = "開く(&O)";
    menuFileSaveAs.Text = "名前を付けて保存(&A)";
    menuFileSave.Text = "上書き保存(&S)";
    menuFileEnd.Text = "終了(&X)";

    // ★★★ 各メニューにイメージを設定する ★★★
    menuFileNew.Image = Image.FromFile(@"C:\Work\NewDocumentHS.BMP");
    menuFileNew.ImageTransparentColor = Color.Black;
    menuFileOpen.Image = Image.FromFile(@"C:\Work\openfolderHS.bmp");
    menuFileOpen.ImageTransparentColor = Color.Black;
    menuFileSaveAs.Image = Image.FromFile(@"C:\Work\saveHS.bmp");
    menuFileSaveAs.ImageTransparentColor = Color.Black;
    menuFileSave.Image = Image.FromFile(@"C:\Work\SaveAllHS.bmp");
    menuFileSave.ImageTransparentColor = Color.Black;

    // ★★★[ファイル(F)]項目に子項目を追加する★★★
    menuFile.DropDownItems.Add(menuFileNew);
    menuFile.DropDownItems.Add(menuFileOpen);
    menuFile.DropDownItems.Add(menuFileSeparator1);
    menuFile.DropDownItems.Add(menuFileSaveAs);
    menuFile.DropDownItems.Add(menuFileSave);
    menuFile.DropDownItems.Add(menuFileSeparator2);
    menuFile.DropDownItems.Add(menuFileEnd);

    // ★★★[ファイル(F)]をメニューに追加する★★★
    menuStrip1.Items.Add(menuFile);
}

[MenuStrip][Tips] ショートカットキーを設定する

メニュー項目にショートカットキーを表示させるにはShortcutKeysプロパティを使用します。

ShortcutKyesプロパティは、下図のようにプロパティウィンドウからも設定することができます。

コードから設定する場合、キーの組み合わせはOr演算子(VBは”Or”, C#は”|”)を使用します。

例えば、ショートカットキー「Ctr + N」は下記のようにします。

VBの例

menuFileNew.ShortcutKeys = Keys.Control Or Keys.N

C#の例

menuFileNew.ShortcutKeys = Keys.Control | Keys.N;

下記はコードでショートカットキーを設定する例です。

VBの例

' フォームロード時の処理
Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim menuFile As New ToolStripMenuItem               'ファイル(&F)
    Dim menuFileNew As New ToolStripMenuItem            '新規作成(&N)
    Dim menuFileOpen As New ToolStripMenuItem           '開く(&O)
    Dim menuFileSeparator1 As New ToolStripSeparator    'セパレーター
    Dim menuFileSaveAs As New ToolStripMenuItem         '名前を付けて保存(&A)
    Dim menuFileSave As New ToolStripMenuItem           '上書き保存(&S)
    Dim menuFileSeparator2 As New ToolStripSeparator    'セパレーター
    Dim menuFileEnd As New ToolStripMenuItem            '終了(&X)

    '項目の設定
    menuFile.Text = "ファイル(&F)"
    menuFileNew.Text = "新規作成(&N)"
    menuFileOpen.Text = "開く(&O)"
    menuFileSaveAs.Text = "名前を付けて保存(&A)"
    menuFileSave.Text = "上書き保存(&S)"
    menuFileEnd.Text = "終了(&X)"

    '★★★ショートカットキーの作成★★★
    menuFileNew.ShortcutKeys = Keys.Control Or Keys.N
    menuFileOpen.ShortcutKeys = Keys.Control Or Keys.O
    menuFileSave.ShortcutKeys = Keys.Shift Or Keys.Control Or Keys.S

    '[ファイル(F)]項目に子項目を追加する
    menuFile.DropDownItems.Add(menuFileNew)
    menuFile.DropDownItems.Add(menuFileOpen)
    menuFile.DropDownItems.Add(menuFileSeparator1)
    menuFile.DropDownItems.Add(menuFileSaveAs)
    menuFile.DropDownItems.Add(menuFileSave)
    menuFile.DropDownItems.Add(menuFileSeparator2)
    menuFile.DropDownItems.Add(menuFileEnd)

    '[ファイル(F)]をメニューに追加する
    MenuStrip1.Items.Add(menuFile)
End Sub

C#の例

// フォームロード時の処理
private void Form3_Load(object sender, EventArgs e)
{
    ToolStripMenuItem menuFile = new ToolStripMenuItem();               // ファイル(&F)
    ToolStripMenuItem menuFileNew = new ToolStripMenuItem();            // 新規作成(&N)
    ToolStripMenuItem menuFileOpen = new ToolStripMenuItem();           // 開く(&O)
    ToolStripSeparator menuFileSeparator1 = new ToolStripSeparator();   // セパレーター
    ToolStripMenuItem menuFileSaveAs = new ToolStripMenuItem();         // 名前を付けて保存(&A)
    ToolStripMenuItem menuFileSave = new ToolStripMenuItem();           // 上書き保存(&S)
    ToolStripSeparator menuFileSeparator2 = new ToolStripSeparator();   // セパレーター
    ToolStripMenuItem menuFileEnd = new ToolStripMenuItem();            // 終了(&X)

    // 項目の設定
    menuFile.Text = "ファイル(&F)";
    menuFileNew.Text = "新規作成(&N)";
    menuFileOpen.Text = "開く(&O)";
    menuFileSaveAs.Text = "名前を付けて保存(&A)";
    menuFileSave.Text = "上書き保存(&S)";
    menuFileEnd.Text = "終了(&X)";

    // ★★★ショートカットキーの作成★★★
    menuFileNew.ShortcutKeys = Keys.Control | Keys.N;
    menuFileOpen.ShortcutKeys = Keys.Control | Keys.O;
    menuFileSave.ShortcutKeys = Keys.Shift | Keys.Control | Keys.S;

    // [ファイル(F)]項目に子項目を追加する
    menuFile.DropDownItems.Add(menuFileNew);
    menuFile.DropDownItems.Add(menuFileOpen);
    menuFile.DropDownItems.Add(menuFileSeparator1);
    menuFile.DropDownItems.Add(menuFileSaveAs);
    menuFile.DropDownItems.Add(menuFileSave);
    menuFile.DropDownItems.Add(menuFileSeparator2);
    menuFile.DropDownItems.Add(menuFileEnd);

    // [ファイル(F)]をメニューに追加する
    menuStrip1.Items.Add(menuFile);
}

[MenuStrip][Tips] 様々なタイプのメニュー項目を使用する


メニューに表示できる項目は「ファイル(F)」や「新規作成(N)」のような文字列だけではありません。
コンボボックスやテキストボックス、セパレーター(分割線)といった項目も表示させることが可能です。
続きを読む

[MenuStrip][Tips] メニューを作成する


アプリケーションメニューを作成するにはMenuStripコントロールを使用します。

フォームにMenuStripコントロールを張り付け後、「ここへ入力」と書かれた場所に直接文字列を入力してメニューを作成することができます。

続きを読む