3

使用せずにリストビューですべてを選択するか、アイテムを選択しない良い方法は何ですか:

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

また

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

基礎となる Win32 リストビュー コモン コントロールは、選択した状態を設定するために使用できるLVM_SETITEMSTATE メッセージをサポートし、インデックスとして -1 を渡すことですべての項目に適用されることを知っています。たまたま .NET Listview コントロールの背後にあるコントロールにメッセージを PInvoking したくありません (完全に管理された ListView クラスに変更するときのために、悪い開発者になりたくないし、文書化されていない動作に依存したくありません)。

バンプ

Pseudo MasochistにはSelectNoneケースがあります。

ListView1.SelectedItems.Clear(); 

SelectAllコードが必要です

4

2 に答える 2

5

また

ListView1.SelectedItems.Clear();

また

ListView1.SelectedIndices.Clear();

とにかく、何も選択しないためのトリックを行う必要があります。

于 2008-09-17T20:22:12.133 に答える
4

うわーこれは古い... :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();

BeginUpdateコンテンツの更新中にコントロールの再描画を無効/有効にするためにEndUpdate使用されます...時間ではなく一度だけ更新されるため、すべてをすばやく選択できると思いますlistView.Items.Count

于 2011-05-23T13:10:19.523 に答える