Compartir vía


ListBox.SelectedIndices Propiedad

Definición

Obtiene una colección que contiene los índices de base cero de todos los elementos actualmente seleccionados en el control ListBox.

public:
 property System::Windows::Forms::ListBox::SelectedIndexCollection ^ SelectedIndices { System::Windows::Forms::ListBox::SelectedIndexCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Windows.Forms.ListBox.SelectedIndexCollection SelectedIndices { get; }
[<System.ComponentModel.Browsable(false)>]
member this.SelectedIndices : System.Windows.Forms.ListBox.SelectedIndexCollection
Public ReadOnly Property SelectedIndices As ListBox.SelectedIndexCollection

Valor de propiedad

ListBox.SelectedIndexCollection

ListBox.SelectedIndexCollection que contiene los índices de los elementos actualmente seleccionados en el control. Si no hay ningún elemento seleccionado, se devuelve una colección ListBox.SelectedIndexCollection vacía.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar el FindString método para buscar todas las instancias del texto de búsqueda en los elementos de ListBox. En el ejemplo se usa la versión del método que permite especificar un índice de búsqueda inicial desde el FindString que realizar una búsqueda continua de todos los elementos de ListBox. En el ejemplo también se muestra cómo determinar cuándo el FindString método comienza a buscar desde la parte superior de la lista después de llegar a la parte inferior de la lista de elementos para evitar una búsqueda recursiva. Una vez que los elementos se encuentran en ListBox, se seleccionan mediante el SetSelected método .

private:
   void FindAllOfMyString( String^ searchString )
   {
      // Set the SelectionMode property of the ListBox to select multiple items.
      listBox1->SelectionMode = SelectionMode::MultiExtended;

      // Set our intial index variable to -1.
      int x = -1;

      // If the search string is empty exit.
      if ( searchString->Length != 0 )
      {
         // Loop through and find each item that matches the search string.
         do
         {
            // Retrieve the item based on the previous index found. Starts with -1 which searches start.
            x = listBox1->FindString( searchString, x );

            // If no item is found that matches exit.
            if ( x != -1 )
            {
               // Since the FindString loops infinitely, determine if we found first item again and exit.
               if ( listBox1->SelectedIndices->Count > 0 )
               {
                  if ( x == listBox1->SelectedIndices[ 0 ] )
                                    return;
               }

               // Select the item in the ListBox once it is found.
               listBox1->SetSelected( x, true );
            }
         }
         while ( x != -1 );
      }
   }
private void FindAllOfMyString(string searchString)
{
   // Set the SelectionMode property of the ListBox to select multiple items.
   listBox1.SelectionMode = SelectionMode.MultiExtended;
   
   // Set our intial index variable to -1.
   int x =-1;
   // If the search string is empty exit.
   if (searchString.Length != 0)
   {
      // Loop through and find each item that matches the search string.
      do
      {
         // Retrieve the item based on the previous index found. Starts with -1 which searches start.
         x = listBox1.FindString(searchString, x);
         // If no item is found that matches exit.
         if (x != -1)
         {
            // Since the FindString loops infinitely, determine if we found first item again and exit.
            if (listBox1.SelectedIndices.Count > 0)
            {
               if(x == listBox1.SelectedIndices[0])
                  return;
            }
            // Select the item in the ListBox once it is found.
            listBox1.SetSelected(x,true);
         }
      }while(x != -1);
   }
}
Private Sub FindAllOfMyString(ByVal searchString As String)
   ' Set the SelectionMode property of the ListBox to select multiple items.
   listBox1.SelectionMode = SelectionMode.MultiExtended

   ' Set our intial index variable to -1.
   Dim x As Integer = -1
   ' If the search string is empty exit.
   If searchString.Length <> 0 Then
      ' Loop through and find each item that matches the search string.
      Do
         ' Retrieve the item based on the previous index found. Starts with -1 which searches start.
         x = listBox1.FindString(searchString, x)
         ' If no item is found that matches exit.
         If x <> -1 Then
            ' Since the FindString loops infinitely, determine if we found first item again and exit.
            If ListBox1.SelectedIndices.Count > 0 Then
               If x = ListBox1.SelectedIndices(0) Then
                  Return
               End If
            End If
            ' Select the item in the ListBox once it is found.
            ListBox1.SetSelected(x, True)
         End If
      Loop While x <> -1
   End If
End Sub

Comentarios

Para una selección ListBoxmúltiple, esta propiedad devuelve una colección que contiene los índices a todos los elementos seleccionados en .ListBox Para una selección ListBoxúnica, esta propiedad devuelve una colección que contiene un solo elemento que contiene el índice del único elemento seleccionado en .ListBox Para obtener más información sobre cómo manipular los elementos de la colección, vea ListBox.SelectedIndexCollection.

La ListBox clase proporciona varias maneras de hacer referencia a los elementos seleccionados. En lugar de usar la SelectedIndices propiedad para obtener la posición de índice del elemento seleccionado actualmente en una selección ListBoxúnica, puede usar la SelectedIndex propiedad . Si desea obtener el elemento seleccionado actualmente en ListBox, en lugar de la posición de índice del elemento, use la SelectedItem propiedad . Además, puede usar la SelectedItems propiedad si desea obtener todos los elementos seleccionados en una selección ListBoxmúltiple.

Se aplica a

Consulte también