Udostępnij za pośrednictwem


ListBox.SelectedIndexChanged Zdarzenie

Definicja

Występuje, gdy SelectedIndex właściwość lub SelectedIndices kolekcja uległa zmianie.

public:
 event EventHandler ^ SelectedIndexChanged;
public event EventHandler SelectedIndexChanged;
public event EventHandler? SelectedIndexChanged;
member this.SelectedIndexChanged : EventHandler 
Public Custom Event SelectedIndexChanged As EventHandler 

Typ zdarzenia

Przykłady

W poniższym przykładzie kodu pokazano, jak za pomocą SelectedIndexChanged zdarzenia wyszukiwać i wybierać element w innej ListBox kontrolce. W przykładzie SelectedIndexChanged użyto zdarzenia do określenia, kiedy wybrany element w elemencie ListBox zostanie zmieniony. Przykładowy kod odczytuje następnie tekst elementu przy użyciu SelectedItem właściwości i wywołuje FindString metodę inną ListBox przy użyciu tekstu zwróconego przez SelectedItem w pierwszym ListBoxelemencie . Jeśli element zostanie znaleziony w innym ListBoxelemencie , zostanie wybrany element. Ten przykład wymaga dodania do formularza dwóch ListBox kontrolek o nazwie listBox1 i listBox2, a oba ListBox kontrolki zawierają identyczne elementy. Przykład wymaga również, aby metoda obsługi zdarzeń zdefiniowana w przykładzie została połączona ze SelectedIndexChanged zdarzeniem listBox1.

private:
   void listBox1_SelectedIndexChanged( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Get the currently selected item in the ListBox.
      String^ curItem = listBox1->SelectedItem->ToString();

      // Find the string in ListBox2.
      int index = listBox2->FindString( curItem );

      // If the item was not found in ListBox 2 display a message box,
      //  otherwise select it in ListBox2.
      if ( index == -1 )
            MessageBox::Show( "Item is not available in ListBox2" );
      else
            listBox2->SetSelected( index, true );
   }
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
   // Get the currently selected item in the ListBox.
   string curItem = listBox1.SelectedItem.ToString();

   // Find the string in ListBox2.
   int index = listBox2.FindString(curItem);
   // If the item was not found in ListBox 2 display a message box, otherwise select it in ListBox2.
   if(index == -1)
      MessageBox.Show("Item is not available in ListBox2");
   else
      listBox2.SetSelected(index,true);
}
Private Sub listBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles listBox1.SelectedIndexChanged
   ' Get the currently selected item in the ListBox.
   Dim curItem As String = listBox1.SelectedItem.ToString()

   ' Find the string in ListBox2.
   Dim index As Integer = listBox2.FindString(curItem)
   ' If the item was not found in ListBox 2 display a message box, otherwise select it in ListBox2.
   If index = -1 Then
      MessageBox.Show("Item is not available in ListBox2")
   Else
      listBox2.SetSelected(index, True)
   End If
End Sub

Uwagi

Możesz utworzyć procedurę obsługi zdarzeń dla tego zdarzenia, aby określić, kiedy wybrany indeks w obiekcie ListBox został zmieniony. Może to być przydatne, gdy trzeba wyświetlić informacje w innych kontrolkach na podstawie bieżącego zaznaczenia w elemencie ListBox. Możesz użyć programu obsługi zdarzeń dla tego zdarzenia, aby załadować informacje w innych kontrolkach.

SelectionMode Jeśli właściwość jest ustawiona na SelectionMode.MultiSimple lub SelectionMode.MultiExtended, wszelkie zmiany SelectedIndices w kolekcji, w tym usunięcie elementu z zaznaczenia, spowoduje wystąpienie tego zdarzenia.

Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Dotyczy

Zobacz też