ListBox.SelectedIndexChanged Händelse

Definition

Inträffar när egenskapen SelectedIndex eller SelectedIndices samlingen har ändrats.

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

Händelsetyp

Exempel

Följande kodexempel visar hur du använder SelectedIndexChanged händelsen för att söka efter och välja ett objekt i en annan ListBox kontroll. I exemplet används SelectedIndexChanged händelsen för att avgöra när det markerade objektet i ListBox ändras. Exempelkoden läser sedan texten i objektet med hjälp SelectedItem av egenskapen och anropar FindString metoden på en annan ListBox med hjälp av texten som returneras av SelectedItem i den första ListBox. Om ett objekt hittas i det andra ListBoxär objektet markerat. Det här exemplet kräver att två ListBox kontroller, med namnet listBox1 och listBox2, har lagts till i ett formulär och att båda ListBox kontrollerna innehåller objekt som är identiska. Exemplet kräver också att den händelsehanteringsmetod som definierats i exemplet är ansluten till SelectedIndexChanged händelsen 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

Kommentarer

Du kan skapa en händelsehanterare för den här händelsen för att avgöra när det valda indexet i ListBox har ändrats. Detta kan vara användbart när du behöver visa information i andra kontroller baserat på den aktuella markeringen i ListBox. Du kan använda händelsehanteraren för den här händelsen för att läsa in informationen i de andra kontrollerna.

Om egenskapen SelectionMode är inställd på SelectionMode.MultiSimple eller SelectionMode.MultiExtendedkommer alla ändringar i SelectedIndices samlingen, inklusive att ta bort ett objekt från markeringen, att generera den här händelsen.

Mer information om hur du hanterar händelser finns i Hantera och höja händelser.

Gäller för

Se även