如何在C#的Listview中使一个复选框勾选,其它所有复选框都被勾选。

4

我正在进行隔离,我有一个listView来展示所有病毒,并在Header Column中添加了复选框(我不知道是否可以在header column中添加复选框)。我添加了一个单独的列来放置复选框。

我希望当头部的复选框被选中时,所有视图列表项中的复选框也被选中。

我希望有人能够帮助。谢谢!


2
将复选框的OnClick或Changed事件挂钩,并循环遍历列表视图项,将每个项目中的复选框设置为已选。 - Robert Harvey
如何在C# Winform应用程序中向列表视图列标题添加复选框? - Reza Aghaei
2个回答

4

使用按钮点击:

private void button1_Click(object sender, EventArgs e)
{ 
   for (int i = 0; i < listView1.Items.Count; i++)
  {
    listView1.Items[i].Checked = true;
  }
}

点击列标题,您可以使用listView1_ColumnClick(object sender, ColumnClickEventArgs e)事件。


3

如果您有一个单独的“全选”复选框用于选择所有项目,则可以使用以下代码:

private void cbSelectAll_CheckedChanged(object sender, EventArgs e)
{
    foreach (ListViewItem listViewItem in listView.Items)
    {
        listViewItem.Checked = cbSelectAll.Checked;
    }
}

如果您想通过单击列表项来检查所有项目,则需要订阅列表视图的ItemChecked事件:

private void listView_ItemChecked(object sender, ItemCheckedEventArgs e)
{
    foreach (ListViewItem listViewItem in listView.Items)
    {
        listViewItem.Checked = e.Item.Checked;
    }
}

提示: 要在列表项上方显示复选框,请将CheckBoxes属性设置为true


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接