C#でListViewコントロールに右クリックメニューを追加し、選択したリストアイテムの情報を表示するサンプルコードです。
準備
フォーム上にリストビューを配置しておく。名前はlistView1とする。
サンプルコード
以下のサンプルコードは、ListViewに右クリックメニューを追加し、選択したアイテムの情報をMessageBoxで表示するサンプルコードです。
using System;
using System.Windows.Forms;
using System.Diagnostics;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// リストビュー初期化
InitializeListView();
// 右クリックメニュー初期化
InitializeContextMenu();
}
// リストビュー初期化
private void InitializeListView()
{
// 行全体を選択可能に設定
listView1.FullRowSelect = true;
// ListViewコントロールの設定
listView1.View = View.Details;
listView1.Columns.Add("項目名", -2, HorizontalAlignment.Left);
listView1.Columns.Add("詳細", -2, HorizontalAlignment.Left);
// テストデータの追加
listView1.Items.Add(new ListViewItem(new[] { "項目1", "詳細1" }));
listView1.Items.Add(new ListViewItem(new[] { "項目2", "詳細2" }));
}
// 右クリックメニュー初期化
private void InitializeContextMenu()
{
// コンテキストメニューの生成
ContextMenuStrip contextMenu = new ContextMenuStrip();
ToolStripMenuItem menuItemShowInfo = new ToolStripMenuItem("情報を表示");
contextMenu.Items.Add(menuItemShowInfo);
// コンテキストメニューのイベントハンドラ設定
menuItemShowInfo.Click += menuItemShowInfo_Click;
// ListViewにコンテキストメニューを設定
listView1.ContextMenuStrip = contextMenu;
}
// 情報を表示クリック時のイベント処理
private void menuItemShowInfo_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
// 選択されたアイテムの情報を表示
ListViewItem item = listView1.SelectedItems[0];
MessageBox.Show($"項目名: {item.Text}, 詳細: {item.SubItems[1].Text}", "アイテム情報");
}
}
}
}
まとめ
本記事では、C#のWindowsフォームアプリにおいて、リストビューに右クリックメニューを追加する方法を紹介しました。