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

スポンサーリンク

メニュー項目にイメージを表示する方法には大きく2つあります。

1つはファイルから読み込んで表示する方法、もう1つはImageListコントロールに設定しておいたイメージを割り当てる方法です。

まずファイルから読み込む方法ですが、ImageクラスのFromFileメソッドを使用します。

例えば C:\Work\CopyHS.bmp をイメージとして設定する場合には下記のようにします。

VBの例

Dim item1 As New ToolStripMenuItem

'★★★メニュー項目に表示するイメージを設定する(ファイルからの読み込み)★★★
item1.Image = Image.FromFile("C:\Work\CopyHS.bmp")

C#の例

ToolStripMenuItem item1 = new ToolStripMenuItem();

// ★★★メニュー項目に表示するイメージを設定する(ファイルからの読み込み)★★★
item1.Image = Image.FromFile(@"C:\Work\CopyHS.bmp");

また、ImageListを利用する場合は、ToolStripMenuItemのImageIndexプロパティに表示するイメージのインデックスを指定します。下記に例を示します。(ImageListコントロールにイメージが設定されてあるものとします)

VBの例

Dim item1 As New ToolStripMenuItem

'★★★メニュー項目に表示するイメージを設定する(イメージリストからの読み込み)★★★
item1.ImageIndex = 2

C#の例

ToolStripMenuItem item1 = new ToolStripMenuItem();

// ★★★メニュー項目に表示するイメージを設定する(イメージリストからの読み込み)★★★
item1.ImageIndex = 2;

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

VBの例

' フォームロード時の処理
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim item1 As New ToolStripMenuItem
    Dim item2 As New ToolStripMenuItem

    'コンテキストメニューにイメージリストを設定
    ContextMenuStrip1.ImageList = ImageList1

    'メニュー項目のテキストを設定
    item1.Text = "コピー(&C)"
    item2.Text = "切り取り(&T)"


    '★★★メニュー項目に表示するイメージを設定する(ファイルからの読み込み)★★★
    item1.Image = Image.FromFile("C:\Work\CopyHS.bmp")
    '★★★メニュー項目に表示するイメージを設定する(イメージリストからの読み込み)★★★
    item2.ImageIndex = 2

    'イメージの透過色にする色を設定
    item1.ImageTransparentColor = Color.Black
    item2.ImageTransparentColor = Color.Black

    'メニュー項目を追加
    ContextMenuStrip1.Items.Add(item1)
    ContextMenuStrip1.Items.Add(item2)

    'フォームのコンテキストメニューの設定
    Me.ContextMenuStrip = ContextMenuStrip1
End Sub

C#の例

// フォームロード時の処理
private void Form2_Load(object sender, EventArgs e)
{
    ToolStripMenuItem item1 = new ToolStripMenuItem();
    ToolStripMenuItem item2 = new ToolStripMenuItem();

    //コンテキストメニューにイメージリストを設定
    contextMenuStrip1.ImageList = imageList1;

    // メニュー項目のテキストを設定
    item1.Text = "コピー(&C)";
    item2.Text = "切り取り(&T)";


    // ★★★メニュー項目に表示するイメージを設定する(ファイルからの読み込み)★★★
    item1.Image = Image.FromFile(@"C:\Work\CopyHS.bmp");
    // ★★★メニュー項目に表示するイメージを設定する(イメージリストからの読み込み)★★★
    item2.ImageIndex = 2;

    // イメージの透過色にする色を設定
    item1.ImageTransparentColor = Color.Black;
    item2.ImageTransparentColor = Color.Black;

    // メニュー項目を追加
    contextMenuStrip1.Items.Add(item1);
    contextMenuStrip1.Items.Add(item2);

    // フォームのコンテキストメニューの設定
    this.ContextMenuStrip = contextMenuStrip1;
}
Please follow and like us:

コメント

タイトルとURLをコピーしました