RRM*_*RRM 1 c# listview winforms
我在C#应用程序中有一个Listview控件,其中包含一些名称和复选框,用于选择一个或多个值.除了单击复选框,用户还可以单击名称,它将变为蓝色.我希望保留此功能,因为单击名称会显示更多数据,然后单击复选框标记它以进行进一步处理
我相信点击复选框更改Item.Checked属性并单击名称Changes Item.Selected但似乎没那么简单.
我有一个计算已检查项目的代码:
private void Listview1_ItemChecked(object sender, ItemCheckedEventArgs e)
{
foreach(ListViewItem Item in ListView1.Items)
{
if (Item != null)
{
if (Item.Checked == true) N++;
}
}
Textbox1.Text = N.ToString();
}
Run Code Online (Sandbox Code Playgroud)
当用户单击复选框时,显示正确的数字,但是当他点击名称时,即使检查了更多复选框,选中的数字也会更改为1,这显然是错误的.此外,当窗体和控件加载时,即使没有选中复选框,我也会得到N = 1.
我究竟做错了什么?
编辑:感谢您的快速回复和有用的提示!
而我刚刚发现我的问题是我的疏忽,因为我忘了删除旧代码!:)起初我使用多个选择来拾取项目,然后我切换到复选框但仍然调用SelectionChanged事件并修改文本框内容
要获取ListView控件中已检查项的数量,请使用该ListView.CheckedItems.Count属性.
例:
int numCheckedItems = myListView.CheckedItems.Count;
Run Code Online (Sandbox Code Playgroud)
要么
TextBox1.Text = myListView.CheckedItems.Count.ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10018 次 |
| 最近记录: |