多くの列のリストビューを作成しています。下の図のように、すべてのサブアイテムでリストをクリック可能にしたいです。
しかし、私が得るものは下の写真のようです。
これは私のコードです:
private void button6_Click(object sender, EventArgs e)
{
ListViewItem listviewitem;
listviewitem = new ListViewItem("John");
listviewitem.SubItems.Add("Smith");
listviewitem.SubItems.Add("kaya");
listviewitem.SubItems.Add("bun");
this.listView1.Items.Add(listviewitem);
this.listView1.ColumnClick += new ColumnClickEventHandler(ColumnClick);
//show header
listView1.View = View.Details;
// Loop through and size each column header to fit the column header text.
foreach (ColumnHeader ch in this.listView1.Columns)
{
ch.Width = -2;
}
}
これは私のcolumnclickイベントハンドラーです。
// ColumnClick event handler.
private void ColumnClick(object o, ColumnClickEventArgs e)
{
// Set the ListViewItemSorter property to a new ListViewItemComparer
// object. Setting this property immediately sorts the
// ListView using the ListViewItemComparer object.
this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column);
}
}
class ListViewItemComparer : IComparer
{
private int col;
public ListViewItemComparer()
{
col = 0;
}
public ListViewItemComparer(int column)
{
col = column;
}
public int Compare(object x, object y)
{
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
}