Freigeben über


ListView.SelectedIndexChanged-Ereignis

Tritt ein, wenn der Index des ausgewählten Elements im Listenansicht-Steuerelement geändert wird.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Event SelectedIndexChanged As EventHandler
'Usage
Dim instance As ListView
Dim handler As EventHandler

AddHandler instance.SelectedIndexChanged, handler
public event EventHandler SelectedIndexChanged
public:
event EventHandler^ SelectedIndexChanged {
    void add (EventHandler^ value);
    void remove (EventHandler^ value);
}
/** @event */
public void add_SelectedIndexChanged (EventHandler value)

/** @event */
public void remove_SelectedIndexChanged (EventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Das SelectedIndexChanged-Ereignis tritt in ListView-Steuerelementen mit einfacher Auswahl immer dann ein, wenn die Indexposition des ausgewählten Elements geändert wird. In einem ListView-Steuerelement mit Mehrfachauswahl tritt dieses Ereignis immer dann ein, wenn der Liste der ausgewählten Elemente ein Element hinzugefügt wird oder wenn ein Element aus dieser Liste entfernt wird. Greifen Sie mit der SelectedItems-Eigenschaft auf die ListView.SelectedListViewItemCollection zu, um zu bestimmen, welche Elemente im ListView-Steuerelement ausgewählt sind. Sie können einen Ereignishandler für dieses Ereignis erstellen, um immer dann Aufgaben auszuführen, wenn an den ausgewählten Elementen im ListView-Steuerelement Änderungen vorgenommen werden.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie die SelectedItems, das SelectedIndexChanged-Ereignis, die HeaderStyle-Member und die ListView.SelectedListViewItemCollection-Klasse verwendet werden. Fügen Sie zum Ausführen dieses Beispiels den folgenden Code in ein Formular ein, das das ListView-Objekt ListView1 und die TextBoxTextBox1 enthält. Rufen Sie die InitializeListView-Methode aus dem Konstruktor des Formulars oder die Load-Methode auf. In diesem Beispiel muss der Ereignishandler dem SelectedIndexChanged-Ereignis richtig zugeordnet sein.

    ' This method adds two columns to the ListView, setting the Text 
    ' and TextAlign, and Width properties of each ColumnHeader.  The 
    ' HeaderStyle property is set to NonClickable since the ColumnClick 
    ' event is not handled.  Finally the method adds ListViewItems and 
    ' SubItems to each column.
    Private Sub InitializeListView()
        Me.ListView1 = New System.Windows.Forms.ListView
        Me.ListView1.BackColor = System.Drawing.SystemColors.Control
        Me.ListView1.Dock = System.Windows.Forms.DockStyle.Top
        Me.ListView1.Location = New System.Drawing.Point(0, 0)
        Me.ListView1.Name = "ListView1"
        Me.ListView1.Size = New System.Drawing.Size(292, 130)
        Me.ListView1.TabIndex = 0
        Me.ListView1.View = System.Windows.Forms.View.Details
        Me.ListView1.MultiSelect = True
        Me.ListView1.HideSelection = False
        ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
        Dim columnHeader1 As New ColumnHeader
        With columnHeader1
            .Text = "Breakfast Item"
            .TextAlign = HorizontalAlignment.Left
            .Width = 146
        End With
        Dim columnHeader2 As New ColumnHeader
        With columnHeader2
            .Text = "Price Each"
            .TextAlign = HorizontalAlignment.Center
            .Width = 142
        End With

        Me.ListView1.Columns.Add(columnHeader1)
        Me.ListView1.Columns.Add(columnHeader2)
        Dim foodList() As String = New String() {"Juice", "Coffee", _
            "Cereal & Milk", "Fruit Plate", "Toast & Jelly", _
            "Bagel & Cream Cheese"}
        Dim foodPrice() As String = New String() {"1.09", "1.09", _
            "2.19", "2.49", "1.49", "1.49"}
        Dim count As Integer
        For count = 0 To foodList.Length - 1
            Dim listItem As New ListViewItem(foodList(count))
            listItem.SubItems.Add(foodPrice(count))
            ListView1.Items.Add(listItem)
        Next
        Me.Controls.Add(Me.ListView1)
    End Sub

...
    ' Uses the SelectedItems property to retrieve and tally the price 
    ' of the selected menu items.
    Private Sub ListView1_SelectedIndexChanged_UsingItems _
        (ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ListView1.SelectedIndexChanged

        Dim breakfast As ListView.SelectedListViewItemCollection = _
            Me.ListView1.SelectedItems
        Dim item As ListViewItem
        Dim price As Double = 0.0
        For Each item In breakfast
            price += Double.Parse(item.SubItems(1).Text)
        Next

        ' Output the price to TextBox1.
        TextBox1.Text = CType(price, String)
    End Sub
 // This method adds two columns to the ListView, setting the Text 
    // and TextAlign, and Width properties of each ColumnHeader.  The 
    // HeaderStyle property is set to NonClickable since the ColumnClick 
    // event is not handled.  Finally the method adds ListViewItems and 
    // SubItems to each column.
    private void InitializeListView()
    {
        this.ListView1 = new System.Windows.Forms.ListView();
        this.ListView1.BackColor = System.Drawing.SystemColors.Control;
        this.ListView1.Dock = System.Windows.Forms.DockStyle.Top;
        this.ListView1.Location = new System.Drawing.Point(0, 0);
        this.ListView1.Name = "ListView1";
        this.ListView1.Size = new System.Drawing.Size(292, 130);
        this.ListView1.TabIndex = 0;
        this.ListView1.View = System.Windows.Forms.View.Details;
        this.ListView1.MultiSelect = true;
        this.ListView1.HideSelection = false;
        this.ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
        
        ColumnHeader columnHeader1 = new ColumnHeader();
        columnHeader1.Text = "Breakfast Item";
        columnHeader1.TextAlign = HorizontalAlignment.Left;
        columnHeader1.Width = 146;

        ColumnHeader columnHeader2 = new ColumnHeader();
        columnHeader2.Text = "Price Each";
        columnHeader2.TextAlign = HorizontalAlignment.Center;
        columnHeader2.Width = 142;
  
        this.ListView1.Columns.Add(columnHeader1);
        this.ListView1.Columns.Add(columnHeader2);

        string[] foodList = new string[]{"Juice", "Coffee", 
            "Cereal & Milk", "Fruit Plate", "Toast & Jelly", 
            "Bagel & Cream Cheese"};
        string[] foodPrice = new string[]{"1.09", "1.09", "2.19", 
            "2.49", "1.49", "1.49"};
        
        for(int count=0; count < foodList.Length; count++)
        {
            ListViewItem listItem = new ListViewItem(foodList[count]);
            listItem.SubItems.Add(foodPrice[count]);
            ListView1.Items.Add(listItem);
        }
        this.Controls.Add(ListView1);
    }
    

...
   // Uses the SelectedItems property to retrieve and tally the price 
    // of the selected menu items.
    private void ListView1_SelectedIndexChanged_UsingItems(
        object sender, System.EventArgs e)
    {

        ListView.SelectedListViewItemCollection breakfast = 
            this.ListView1.SelectedItems;
        
        double price = 0.0;
        foreach ( ListViewItem item in breakfast )
        {
            price += Double.Parse(item.SubItems[1].Text);
        }

        // Output the price to TextBox1.
        TextBox1.Text = price.ToString();
    }
   // This method adds two columns to the ListView, setting the Text 
   // and TextAlign, and Width properties of each ColumnHeader.  The 
   // HeaderStyle property is set to NonClickable since the ColumnClick 
   // event is not handled.  Finally the method adds ListViewItems and 
   // SubItems to each column.
   void InitializeListView()
   {
      this->ListView1 = gcnew System::Windows::Forms::ListView;
      this->ListView1->BackColor = System::Drawing::SystemColors::Control;
      this->ListView1->Dock = System::Windows::Forms::DockStyle::Top;
      this->ListView1->Location = System::Drawing::Point( 0, 0 );
      this->ListView1->Name = "ListView1";
      this->ListView1->Size = System::Drawing::Size( 292, 130 );
      this->ListView1->TabIndex = 0;
      this->ListView1->View = System::Windows::Forms::View::Details;
      this->ListView1->MultiSelect = true;
      this->ListView1->HideSelection = false;
      this->ListView1->HeaderStyle = ColumnHeaderStyle::Nonclickable;
      ColumnHeader^ columnHeader1 = gcnew ColumnHeader;
      columnHeader1->Text = "Breakfast Item";
      columnHeader1->TextAlign = HorizontalAlignment::Left;
      columnHeader1->Width = 146;
      ColumnHeader^ columnHeader2 = gcnew ColumnHeader;
      columnHeader2->Text = "Price Each";
      columnHeader2->TextAlign = HorizontalAlignment::Center;
      columnHeader2->Width = 142;
      this->ListView1->Columns->Add( columnHeader1 );
      this->ListView1->Columns->Add( columnHeader2 );
      array<String^>^foodList = {"Juice","Coffee","Cereal & Milk","Fruit Plate","Toast & Jelly","Bagel & Cream Cheese"};
      array<String^>^foodPrice = {"1.09","1.09","2.19","2.49","1.49","1.49"};
      for ( int count = 0; count < foodList->Length; count++ )
      {
         ListViewItem^ listItem = gcnew ListViewItem( foodList[ count ] );
         listItem->SubItems->Add( foodPrice[ count ] );
         ListView1->Items->Add( listItem );

      }
      this->Controls->Add( ListView1 );
   }

...
   // Uses the SelectedItems property to retrieve and tally the price 
   // of the selected menu items.
   void ListView1_SelectedIndexChanged_UsingItems( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      ListView::SelectedListViewItemCollection^ breakfast = this->ListView1->SelectedItems;
      double price = 0.0;
      System::Collections::IEnumerator^ myEnum = breakfast->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         ListViewItem^ item = safe_cast<ListViewItem^>(myEnum->Current);
         price += Double::Parse( item->SubItems[ 1 ]->Text );
      }

      // Output the price to TextBox1.
      TextBox1->Text = price.ToString();
   }
    // This method adds two columns to the ListView, setting the Text 
    // and TextAlign, and Width properties of each ColumnHeader.  The 
    // HeaderStyle property is set to NonClickable since the ColumnClick 
    // event is not handled.  Finally the method adds ListViewItems and 
    // SubItems to each column.
    private void InitializeListView()
    {
        this.listView1 = new System.Windows.Forms.ListView();
        this.listView1.set_BackColor(
            System.Drawing.SystemColors.get_Control());
        this.listView1.set_Dock(System.Windows.Forms.DockStyle.Top);
        this.listView1.set_Location(new System.Drawing.Point(0, 0));
        this.listView1.set_Name("listView1");
        this.listView1.set_Size(new System.Drawing.Size(292, 130));
        this.listView1.set_TabIndex(0);
        this.listView1.set_View(System.Windows.Forms.View.Details);
        this.listView1.set_MultiSelect(true);
        this.listView1.set_HideSelection(false);
        this.listView1.set_HeaderStyle(ColumnHeaderStyle.Nonclickable);

        ColumnHeader columnHeader1 = new ColumnHeader();
        columnHeader1.set_Text("Breakfast Item");
        columnHeader1.set_TextAlign(HorizontalAlignment.Left);
        columnHeader1.set_Width(146);

        ColumnHeader columnHeader2 = new ColumnHeader();
        columnHeader2.set_Text("Price Each");
        columnHeader2.set_TextAlign(HorizontalAlignment.Center);
        columnHeader2.set_Width(142);

        this.listView1.get_Columns().Add(columnHeader1);
        this.listView1.get_Columns().Add(columnHeader2);

        String foodList[] = new String[] { "Juice", "Coffee", "Cereal & Milk",
            "Fruit Plate", "Toast & Jelly", "Bagel & Cream Cheese" };
        String foodPrice[] = new String[] { "1.09", "1.09", "2.19", "2.49",
            "1.49", "1.49" };

        for (int count = 0; count < foodList.get_Length(); count++) {
            ListViewItem listItem = new ListViewItem(
                foodList.get_Item(count).ToString());
            listItem.get_SubItems().Add(foodPrice.get_Item(count).ToString());
            listView1.get_Items().Add(listItem);
        }
        this.get_Controls().Add(listView1);
    } //InitializeListView

...
    // Uses the SelectedItems property to retrieve and tally the price 
    // of the selected menu items.
    private void listView1_SelectedIndexChanged_UsingItems(Object sender, 
        System.EventArgs e)
    {
        ListView.SelectedListViewItemCollection breakfast = 
            this.listView1.get_SelectedItems();

        double price = 0.0;
        for (int iCtr = 0; iCtr < breakfast.get_Count(); iCtr++) {
            ListViewItem item = breakfast.get_Item(iCtr);
            price += System.Double.Parse(item.get_SubItems().get_Item(1).
                get_Text().ToString());
        }
        // Output the price to textBox1.
        textBox1.set_Text(System.Convert.ToString(price));
    } //listView1_SelectedIndexChanged_UsingItems

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

ListView-Klasse
ListView-Member
System.Windows.Forms-Namespace
OnSelectedIndexChanged
EventHandler
ListView.SelectedIndices-Eigenschaft
ListView.SelectedItems-Eigenschaft