带有 CheckBox 的 ListView,MulticSelect = false ,View = Detail , 要实现如下效果:
1. 单击ListView中的某一项,该项为选中状态,CheckBox为 选中状态。
2. 单击CheckBOx ,则这一项为选中状态, CheckBox为选中状态。
3. 有且仅有一个CheckBox被选中,并且该项为高亮显示的选中项。Ps.发现 点击CheckBox的时候不会引发SelectIndexChanged事件的,而且点ListView中某一项的时候SelectIndexChanged事件会触发两次,其中一次 SelectedItems.Count == 0 ,另一次不为0,不知道什么缘故。

解决方案 »

  1.   

    1. AfterCheck事件里e.Node.Checked = true
      

  2.   

    1)mouseup事件里,this.ListView1.GetItemAt (e.X ,e.Y ).Checked = true;
    2)itemcheck事件里,
    this.ListView1.SelectedItems = this.Listview1.Items [e.Index ];
    3)click事件:(保持checkbox单选)
    ListView.CheckedListViewItemCollection chItems = this.Listview1.CheckedItems ;
    foreach (ListViewItem lsvItem in chItems)
    {
    lsvItem.Checked = false;
    }当你选中该记录后,再次点该记录则不会触发SelectIndexChanged事件。
    后面触发两次的,不知道是什么原因。