mono環境のC#でリストビューの項目選択

コンピュータ

リストビューで項目を選択した際実行されるイベントを確認してみます。

// listview01.cs

using System;
using System.Drawing;
using System.Windows.Forms;
/*
ビルド
mcs listview01.cs /r:System.Windows.Forms.dll /r:System.Drawing.dll
実行
mono listview01.exe
*/
class listview01
{
    public static void Main()
    {
        Form f = new Form();
        f.Size = new Size(800, 600);

        // リストビューの生成
        var lv = new ListView
        {
            Dock = DockStyle.Fill,
            View = View.Details,   // 表示...詳細
        };
        lv.Parent = f;
        // リストビューにカラムを追加
        lv.Columns.AddRange(new ColumnHeader[]
        {
            // 名前、幅
            new ColumnHeader(){Text = "名前", Width = 480, }
        });
        // リストビューにアイテムを追加
        for (int i = 0; i < 5; i++)
        {
            string[] item = {String.Format("{0}番目",i+1)};
            var lvi = new ListViewItem(item);
            lv.Items.Add(lvi);
        }
        // SelectedIndexChangedイベント
        lv.SelectedIndexChanged += (s, e) =>
        {
            foreach(ListViewItem item in lv.SelectedItems)
            {
                Console.WriteLine("SelectedIndexChanged:{0}",
                    item.SubItems[0].Text);
            }
        };
        // ItemActivateイベント
        lv.ItemActivate += (s, e) =>
        {
            foreach(ListViewItem item in lv.SelectedItems)
            {
                Console.WriteLine("ItemActivate:{0}",
                    item.SubItems[0].Text);
            }
        };
        Application.Run(f);
    }

}



項目の選択はSelectedIndexChangedイベント、ダブルクリックはItemActivateイベントが使えそうな感じがします。

コメント