0

Col1とCol2でRMBをクリックしたときにイベントをキャッチしたいのですが、イベントが異なるはずですが、それを行うチャンスはありますか?

ここに画像の説明を入力してください

4

2 に答える 2

2

@HansPassantが言ったように、mouseupイベントを追加します

void listview1_MouseUp(object sender, MouseEventArgs e)
    {
        ListViewItem item = listview1.GetItemAt(e.X, e.Y);
        ListViewHitTestInfo info = listview1.HitTest(e.X, e.Y);

        if ((item != null) && (info.SubItem != null))
        {
            //item.SubItems.IndexOf(info.SubItem) gives the column index
            MessageBox.Show(item.SubItems.IndexOf(info.SubItem).ToString());
        }
    }
于 2012-09-02T20:34:15.310 に答える
0

ListViewの代わりにDataGridViewを使用します。DataGridViewはすでにセルクリックをサポートしています。

    private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        string message = "You have clicked " + (e.ColumnIndex + 1).ToString() + " cell inside " + (e.RowIndex + 1).ToString() + " row!";
        MessageBox.Show(message, "Click info", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }

ListViewは、表形式のデータで使用するためのものではありません。主な用途はリストです。良い例はWindowsエクスプローラーです。

于 2012-09-02T19:44:49.333 に答える