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