ListViewItemCollection

プロパティ

プロパティ 内容
ListViewItem Item[Int32] 指定のインデックスにある項目
ListViewItem Item[String] 指定のキーを持つ項目
     

メソッド

Add()

public virtual ListViewItem Add(
    string text
)
ListView.ListViewItemCollection.Add メソッド (String) (System.Windows.Forms) | MSDN

そのとき詳細な情報を指定したいならば、ListViewItemのインスタンスを別に作成します。

public virtual ListViewItem Add(
    ListViewItem value
)
ListView.ListViewItemCollection.Add メソッド (ListViewItem) (System.Windows.Forms) | MSDN
ListViewItem item = new ListViewItem();
listView.Items.Add(item);

このAdd()メソッドは追加されたListViewItemを返すため、次のようにも記述できます。

ListViewItem item = listView.Items.Add(new ListViewItem());

ListViewItemのテキストは、生成時に設定できます。

public ListViewItem(
    string text // 項目に表示するテキスト (259文字未満)
)
ListViewItem コンストラクター (String) (System.Windows.Forms) | MSDN

他にも多数のオーバーロードがあり、そこで各種の情報を設定できます。

多量の項目の追加

複数の項目をListViewに追加するときは、AddRange()で一括して処理します。

public void AddRange(
    ListViewItem[] items
)
ListView.ListViewItemCollection.AddRange メソッド (ListViewItem[]) (System.Windows.Forms) | MSDN

これ以外の場合、たとえば個別に追加や変更する場合には、BeginUpdate()とEndUpdate()でコントロールの更新を一時停止させます。さもなくば変更を加えるたびにコントロールが再描画されるため、性能を著しく低下させます。

listView.BeginUpdate();
for (int i = 0; i < 100; i++)
{
    ListViewItem item = new ListViewItem();
    listView.Items.Add(item);
}
listView.EndUpdate();
public void BeginUpdate ();
ListView.BeginUpdate メソッド (System.Windows.Forms) | Microsoft Learn

内部ではupdateCounterが加算され、これが0より大きい間は項目の追加時に表示が更新されません。 BeginUpdate - ListView.cs InsertItems - ListView.cs

Find()

指定のキー (ListViewItem.Nameの値) と一致する名前を持つ、すべての項目を得られます。

public System.Windows.Forms.ListViewItem[] Find (
    string key,
    bool searchAllSubItems // trueならば、サブ項目も検索する
    );
ListView.ListViewItemCollection.Find(String, Boolean) メソッド (System.Windows.Forms) | Microsoft Learn

keyの大文字/小文字は区別されません。

Find()は一致するすべての項目を検索するため、項目の数だけ計算量がかかります。一方でIndexOfKey()は一致した時点で処理を打ち切るため、キーが重複しないことが確かでありサブ項目を対象外とするならば、IndexOfKey()の方が効率的です。Find - ListView.cs

IndexOfKey()

指定のキーと一致する名前を持つ、最初の項目のインデックスを得られます。

public virtual int IndexOfKey (string key);
ListView.ListViewItemCollection.IndexOfKey(String) メソッド (System.Windows.Forms) | Microsoft Learn

keyの大文字/小文字は区別されません。

検索結果は1つだけキャッシュされ、同一のkeyをくり返し指定したときは、そのキャッシュされた結果が返されます。 Remarks - ListView.ListViewItemCollection.IndexOfKey(String) Method (System.Windows.Forms) | Microsoft Learn IndexOfKey - ListView.cs

Microsoft Learnから検索