C# winform项目中ListView控件使用CheckBoxes属性实现单选功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform项目中ListView控件使用CheckBoxes属性实现单选功能相关的知识,希望对你有一定的参考价值。

C# winform项目中ListView控件使用CheckBoxes属性实现单选功能

在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes和点击选中CheckBoxes时自动显示正行选中状态的单选功能。

效果图:

技术分享

主要利用两个事件:listView1_ItemCheck和listView1_SelectedIndexChanged事件。

上代码:

 

[csharp] view plain copy
 
 print?技术分享技术分享
  1. private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)  
  2. {  
  3.     if (!listView1.Items[e.Index].Checked)//如果点击的CheckBoxes没有选中  
  4.     {  
  5.         foreach (ListViewItem lv in listView1.Items)  
  6.         {  
  7.             if (lv.Checked)//取消所有已选中的CheckBoxes  
  8.             {  
  9.                 lv.Checked = false;  
  10.                 lv.Selected = false;  
  11.                // lv.BackColor = Color.White;  
  12.             }                      
  13.         }  
  14.         listView1.Items[e.Index].Selected = true;  
  15.         // lv.Checked = false;  
  16.     }  
  17.       
  18.     //int count = listView1.Items.Count;  
  19.     //ListViewItem item = listView1.Items[e.Index];  
  20.     //if (item.Checked)  
  21.     //{  
  22.     //    for (int i = 0; i < count; i++)  
  23.     //    {  
  24.     //        if (i != e.Index)  
  25.     //        {  
  26.     //            ListViewItem item1 = listView1.Items[i];  
  27.     //            item1.Checked = false;  
  28.     //        }  
  29.     //    }  
  30.     //}  
  31. }  

 

[csharp] view plain copy
 
 print?技术分享技术分享
    1. private void listView1_SelectedIndexChanged(object sender, EventArgs e)  
    2. {  
    3.   
    4.     foreach (ListViewItem lv in listView1.Items)  
    5.     {  
    6.   
    7.         if (lv.Selected)  
    8.         {  
    9.             //if (lv.Checked)  
    10.             //{  
    11.             //    //lv.Checked = false;  
    12.             //}  
    13.             //else  
    14.             //{  
    15.                 lv.Checked = true;  
    16.             //}  
    17.         }  
    18.         else   
    19.         {  
    20.             if (listView1.SelectedIndices.Count>0)  
    21.             {  
    22.                 if (lv.Checked)  
    23.                 {  
    24.                     lv.Checked = false;                             
    25.                 }  
    26.             }  
    27.               
    28.         }  
    29.     }  
    30.   
    31. }  

以上是关于C# winform项目中ListView控件使用CheckBoxes属性实现单选功能的主要内容,如果未能解决你的问题,请参考以下文章

c# winform 用listview做导航界面,控件上下移动后 顺序不对?

C# Winform 关于ListView控件绑定DataTable

C# winform 的listView控件如何将单元格写入值

C#实战:WinForm控件ListView快速上手

C# winform程序 绑定listView1控件值(对应数据库表中的字段名) 循环绑定 insert into 语句中的到吗问题...

C# winForm 将datagridview 控件中的数据(大约有六千行甚至更多),导入到listview中显示时,卡死了。