C#在ListView中获取CheckBox选中的值(多选)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#在ListView中获取CheckBox选中的值(多选)相关的知识,希望对你有一定的参考价值。

我是想把ListView里面所选勾选的值保存到一个对象中,
然后把该对象传递到另一个WinForm窗体,请问该如何实现,最好能给到一小段代码,谢谢

最重要我是想知道如何获取ListView里,CheckBox中选选的值

参考技术A string list = "";
for (int i = 0; i < this.listView1.CheckedItems.Count; i++)

if (this.listView1.CheckedItems[i].Checked)

list += this.listView1.CheckedItems[i].Text + ",";

本回答被提问者和网友采纳
参考技术B foreach ( ListViewItem item in ListView1.CheckedItems)

Console.Writeline(item.SubItems[1].Text);

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#在ListView中获取CheckBox选中的值(多选)的主要内容,如果未能解决你的问题,请参考以下文章

怎么获取listview 中checkbox的选中状态

如何遍历并获取listview中checkbox是不是选中以及该项的id?

使用复选框从 ListView 中获取选中的项目

C# 如何获取listview里面当前选中的item

Android中ListView结合CheckBox判断选中项

如何从C#中获取ListView中选中某一行某一列的值