【问题标题】:How to SelectAll / SelectNone in .NET 2.0 ListView?如何在 .NET 2.0 ListView 中选择全选/全选?
【发布时间】:2008-09-17 20:10:38
【问题描述】:

什么是在列表视图中选择全部或不选择任何项目而不使用的好方法:

foreach (ListViewItem item in listView1.Items)
{
 item.Selected = true;
}

foreach (ListViewItem item in listView1.Items)
{
 item.Selected = false;
}

我知道底层的 Win32 listview 通用控件支持LVM_SETITEMSTATE message,您可以使用它来设置选定状态,并通过将 -1 作为索引传递它将应用于所有项目。我宁愿不向恰好位于 .NET Listview 控件后面的控件 PInvoking 消息(我不想成为一个糟糕的开发人员并依赖未记录的行为 - 因为当他们将其更改为完全托管的 ListView 类时)

Pseudo MasochistSelectNone 情况:

ListView1.SelectedItems.Clear(); 

现在只需要 SelectAll 代码

【问题讨论】:

    标签: listview selectall


    【解决方案1】:

    要么

    ListView1.SelectedItems.Clear();
    

    ListView1.SelectedIndices.Clear();
    

    无论如何都应该选择无。

    【讨论】:

      【解决方案2】:

      哇,这太旧了……:D

      全选

       listView1.BeginUpdate(); 
       foreach (ListViewItem i in listView1.Items)
       {
           i.Selected = true;
       }
       listView1.EndUpdate();
      

      选择逆向

       listView1.BeginUpdate(); 
       foreach (ListViewItem i in listView1.Items)
       {
           i.Selected = !i.Selected;
       }
       listView1.EndUpdate();
      

      BeginUpdateEndUpdate 用于在更新其内容时禁用/启用控件重绘...我认为它会更快地选择所有内容,因为它只会刷新一次,而不是listView.Items.Count 次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多