ListBox.SelectedIndexChanged Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ń.