ListBox.SelectedIndices Proprietà

Definizione

Ottiene un insieme che contiene gli indici in base zero di tutti gli elementi correntemente selezionati nel controllo 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

Valore della proprietà

Insieme ListBox.SelectedIndexCollection contenente gli indici degli elementi correntemente selezionati nel controllo. Se non sono stati selezionati elementi, viene restituito un oggetto ListBox.SelectedIndexCollection vuoto.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare il FindString metodo per cercare tutte le istanze del testo di ricerca negli elementi di ListBox. Nell'esempio viene utilizzata la versione del FindString metodo che consente di specificare un indice di ricerca iniziale da cui eseguire una ricerca continua di tutti gli elementi in ListBox. Nell'esempio viene inoltre illustrato come determinare quando il FindString metodo inizia la ricerca dall'inizio della ricerca dall'inizio dell'elenco dopo che raggiunge la parte inferiore dell'elenco di elementi per impedire una ricerca ricorsiva. Dopo aver trovato gli elementi in ListBox, vengono selezionati usando il SetSelected metodo .

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

Commenti

Per una selezione ListBoxmultipla, questa proprietà restituisce un insieme contenente gli indici a tutti gli elementi selezionati in ListBox. Per una selezione ListBoxsingola, questa proprietà restituisce un insieme contenente un singolo elemento contenente l'indice dell'unico elemento selezionato in ListBox. Per altre informazioni su come modificare gli elementi della raccolta, vedere ListBox.SelectedIndexCollection.

La ListBox classe fornisce diversi modi per fare riferimento agli elementi selezionati. Anziché usare la SelectedIndices proprietà per ottenere la posizione di indice dell'elemento attualmente selezionato in una selezione ListBoxsingola, è possibile utilizzare la SelectedIndex proprietà . Se si desidera ottenere l'elemento attualmente selezionato in ListBox, anziché la posizione di indice dell'elemento, utilizzare la SelectedItem proprietà . Inoltre, è possibile utilizzare la SelectedItems proprietà se si desidera ottenere tutti gli elementi selezionati in una selezione ListBoxmultipla .

Si applica a

Vedi anche