Share via


ListViewGroupCollection.AddRange Método

Definição

Adiciona vários grupos à coleção.

Sobrecargas

AddRange(ListViewGroup[])

Adiciona uma matriz de grupos à coleção.

AddRange(ListViewGroupCollection)

Adiciona os grupos em um ListViewGroupCollection existente à coleção.

AddRange(ListViewGroup[])

Adiciona uma matriz de grupos à coleção.

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())

Parâmetros

groups
ListViewGroup[]

Uma matriz do tipo ListViewGroup que especifica os grupos a serem adicionados à coleção.

Exceções

groups contém pelo menos um grupo com pelo menos um ListViewItem que pertence a um controle ListView diferente daquele que é proprietário deste ListViewGroupCollection.

A ListView coleção à qual essa coleção é atribuída está no modo virtual.

Exemplos

O exemplo a seguir demonstra como o AddRange método pode ser usado em um aplicativo que organiza ListView itens por valor subitem na exibição de detalhes. Essa forma de agrupamento é semelhante ao agrupamento usado no Gerenciador de Windows. No exemplo, os grupos são criados dinamicamente. Para cada coluna subitem, um grupo é criado para cada valor de subitem exclusivo. Para a coluna de item pai, um grupo é criado para cada letra inicial exclusiva. Os grupos criados para cada coluna são armazenados em uma tabela de hash junto com o texto subitem ou a letra inicial. Quando um cabeçalho de coluna é clicado, ele ListViewGroupCollection é limpo. A tabela de hash correspondente à coluna clicada é recuperada e cada item é atribuído ao grupo apropriado. Por fim, uma matriz classificada dos grupos na tabela de hash é adicionada ao ListViewGroupCollection.

Para obter o exemplo completo, consulte o ListViewGroupCollection tópico de referência de visão geral.

   // 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

Comentários

Use esta versão do AddRange método para adicionar uma matriz de grupos à coleção de grupos. Esse método é útil quando você cria vários ListViewGroup objetos e deseja adicioná-los à coleção com uma única chamada de método. Para adicionar grupos individuais à coleção, use o Add método.

Esse método também é útil quando você deseja fornecer várias maneiras de agrupar os itens em um ListView controle. Para fazer isso, crie várias matrizes de grupo. Para alterar o agrupamento, primeiro use o Clear método para remover todos os grupos da coleção e, em seguida, use o AddRange método para adicionar uma matriz diferente de grupos.

Ao contrário do Add método, o AddRange método não tem um valor retornado que possa ser usado para determinar se um grupo que está sendo adicionado já está na coleção. Se você precisar dessas informações, use o Contains método antes de usar o AddRange método.

Confira também

Aplica-se a

AddRange(ListViewGroupCollection)

Adiciona os grupos em um ListViewGroupCollection existente à coleção.

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)

Parâmetros

groups
ListViewGroupCollection

Um ListViewGroupCollection que contém os grupos a serem adicionados à coleção.

Exceções

groups contém pelo menos um grupo com pelo menos um ListViewItem que pertence a um controle ListView diferente daquele que é proprietário deste ListViewGroupCollection.

A ListView coleção à qual essa coleção é atribuída está no modo virtual.

Comentários

Use esta versão do AddRange método para adicionar os elementos de um ListViewGroupCollection que você recupera por meio da ListView.Groups propriedade de um controle diferente ListView .

Ao contrário do Add método, o AddRange método não tem um valor retornado que possa ser usado para determinar se um grupo que está sendo adicionado já está na coleção. Se você precisar dessas informações, use o Contains método antes de usar o AddRange método.

Aplica-se a