ListViewGroupCollection.AddRange メソッド

定義

コレクションに複数のグループを追加します。

オーバーロード

AddRange(ListViewGroup[])

コレクションにグループの配列を追加します。

AddRange(ListViewGroupCollection)

既存の ListViewGroupCollection 内のグループをコレクションに追加します。

AddRange(ListViewGroup[])

コレクションにグループの配列を追加します。

public:
 void AddRange(cli::array <System::Windows::Forms::ListViewGroup ^> ^ groups);
public void AddRange (System.Windows.Forms.ListViewGroup[] groups);
member this.AddRange : System.Windows.Forms.ListViewGroup[] -> unit
Public Sub AddRange (groups As ListViewGroup())

パラメーター

groups
ListViewGroup[]

コレクションに追加するグループを指定する ListViewGroup 型の配列。

例外

groups に、この ListViewItem を所有するもの以外に、ListView コントロールに属する ListViewGroupCollection を少なくとも 1 つ含むグループが、少なくとも 1 つ存在します。

ListViewこのコレクションが割り当てられているのは仮想モードです。

次の例では、詳細ビューのサブ項目値で項目を整理ListViewするアプリケーションでメソッドを使用する方法AddRangeを示します。 この形式のグループ化は、Windows エクスプローラーで使用されるグループ化に似ています。 この例では、グループは動的に作成されます。 サブ項目列ごとに、一意のサブ項目値ごとに 1 つのグループが作成されます。 親項目列の場合、一意の最初の文字ごとに 1 つのグループが作成されます。 各列に対して作成されたグループは、サブ項目テキストまたは初期文字と共にハッシュ テーブルに格納されます。 列ヘッダーをクリックすると、そのヘッダー ListViewGroupCollection はクリアされます。 クリックした列に対応するハッシュ テーブルが取得され、各項目が適切なグループに割り当てられます。 最後に、ハッシュ テーブル内のグループの並べ替えられた配列が ListViewGroupCollection.

完全な例については、概要のリファレンス トピックを ListViewGroupCollection 参照してください。

   // Sets myListView to the groups created for the specified column.
private:
   void SetGroups(int column)
   {
      // Remove the current groups.
      myListView->Groups->Clear();

      // Retrieve the hash table corresponding to the column.
      Hashtable^ groups = dynamic_cast<Hashtable^>(groupTables[column]);

      // Copy the groups for the column to an array.
      array<ListViewGroup^>^ groupsArray = gcnew array<ListViewGroup^>(groups->Count);
      groups->Values->CopyTo(groupsArray, 0);

      // Sort the groups and add them to myListView.
      Array::Sort(groupsArray, gcnew ListViewGroupSorter(myListView->Sorting));
      myListView->Groups->AddRange(groupsArray);

      // Iterate through the items in myListView, assigning each 
      // one to the appropriate group.
      IEnumerator^ myEnum = myListView->Items->GetEnumerator();
      while (myEnum->MoveNext())
      {
         ListViewItem^ item = safe_cast<ListViewItem^>(myEnum->Current);
         // Retrieve the subitem text corresponding to the column.
         String^ subItemText = item->SubItems[column]->Text;

         // For the Title column, use only the first letter.
         if (column == 0) 
         {
            subItemText = subItemText->Substring(0, 1);
         }

         // Assign the item to the matching group.
         item->Group = dynamic_cast<ListViewGroup^>(groups[subItemText]);
      }
   }
// Sets myListView to the groups created for the specified column.
private void SetGroups(int column)
{
    // Remove the current groups.
    myListView.Groups.Clear();

    // Retrieve the hash table corresponding to the column.
    Hashtable groups = (Hashtable)groupTables[column];

    // Copy the groups for the column to an array.
    ListViewGroup[] groupsArray = new ListViewGroup[groups.Count];
    groups.Values.CopyTo(groupsArray, 0);

    // Sort the groups and add them to myListView.
    Array.Sort(groupsArray, new ListViewGroupSorter(myListView.Sorting));
    myListView.Groups.AddRange(groupsArray);

    // Iterate through the items in myListView, assigning each 
    // one to the appropriate group.
    foreach (ListViewItem item in myListView.Items)
    {
        // Retrieve the subitem text corresponding to the column.
        string subItemText = item.SubItems[column].Text;

        // For the Title column, use only the first letter.
        if (column == 0) 
        {
            subItemText = subItemText.Substring(0, 1);
        }

        // Assign the item to the matching group.
        item.Group = (ListViewGroup)groups[subItemText];
    }
}
' Sets myListView to the groups created for the specified column.
Private Sub SetGroups(column As Integer)
    ' Remove the current groups.
    myListView.Groups.Clear()
    
    ' Retrieve the hash table corresponding to the column.
    Dim groups As Hashtable = CType(groupTables(column), Hashtable)
    
    ' Copy the groups for the column to an array.
    Dim groupsArray(groups.Count - 1) As ListViewGroup
    groups.Values.CopyTo(groupsArray, 0)
    
    ' Sort the groups and add them to myListView.
    Array.Sort(groupsArray, New ListViewGroupSorter(myListView.Sorting))
    myListView.Groups.AddRange(groupsArray)
    
    ' Iterate through the items in myListView, assigning each 
    ' one to the appropriate group.
    Dim item As ListViewItem
    For Each item In myListView.Items
        ' Retrieve the subitem text corresponding to the column.
        Dim subItemText As String = item.SubItems(column).Text
        
        ' For the Title column, use only the first letter.
        If column = 0 Then
            subItemText = subItemText.Substring(0, 1)
        End If 

        ' Assign the item to the matching group.
        item.Group = CType(groups(subItemText), ListViewGroup)
    Next item
End Sub

注釈

このバージョンのメソッドを AddRange 使用して、グループコレクションにグループの配列を追加します。 このメソッドは、複数の ListViewGroup オブジェクトを作成し、1 つのメソッド呼び出しでコレクションに追加する場合に便利です。 コレクションに個々のグループを追加するには、メソッドを Add 使用します。

このメソッドは、コントロール内の項目をグループ化する複数の方法を提供する場合にも便利です ListView 。 これを行うには、複数のグループ配列を作成します。 グループ化を変更するには、最初にメソッドを Clear 使用してコレクションからすべてのグループを削除してから、メソッドを AddRange 使用してグループの別の配列を追加します。

Addメソッドとは異なり、AddRange追加されるグループがコレクション内に既にあるかどうかを判断するために使用できる戻り値がありません。 この情報が必要な場合は、メソッドを使用する Contains 前にメソッドを AddRange 使用してください。

こちらもご覧ください

適用対象

AddRange(ListViewGroupCollection)

既存の ListViewGroupCollection 内のグループをコレクションに追加します。

public:
 void AddRange(System::Windows::Forms::ListViewGroupCollection ^ groups);
public void AddRange (System.Windows.Forms.ListViewGroupCollection groups);
member this.AddRange : System.Windows.Forms.ListViewGroupCollection -> unit
Public Sub AddRange (groups As ListViewGroupCollection)

パラメーター

groups
ListViewGroupCollection

コレクションに追加するグループを格納している ListViewGroupCollection

例外

groups に、この ListViewItem を所有するもの以外に、ListView コントロールに属する ListViewGroupCollection を少なくとも 1 つ含むグループが、少なくとも 1 つ存在します。

ListViewこのコレクションが割り当てられているのは仮想モードです。

注釈

このバージョンのメソッドをAddRange使用して、別ListViewのコントロールのListViewGroupCollectionプロパティを使用して取得するListView.Groups要素を追加します。

Addメソッドとは異なり、AddRange追加されるグループがコレクション内に既にあるかどうかを判断するために使用できる戻り値がありません。 この情報が必要な場合は、メソッドを使用する Contains 前にメソッドを AddRange 使用してください。

適用対象