ListView.ItemCheck-Ereignis
Tritt ein, wenn der Aktivierungszustand eines Elements geändert wird.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public Event ItemCheck As ItemCheckEventHandler
'Usage
Dim instance As ListView
Dim handler As ItemCheckEventHandler
AddHandler instance.ItemCheck, handler
public event ItemCheckEventHandler ItemCheck
public:
event ItemCheckEventHandler^ ItemCheck {
void add (ItemCheckEventHandler^ value);
void remove (ItemCheckEventHandler^ value);
}
/** @event */
public void add_ItemCheck (ItemCheckEventHandler value)
/** @event */
public void remove_ItemCheck (ItemCheckEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.
Hinweise
Die CheckBoxes-Eigenschaft muss auf True festgelegt sein, damit im ListView-Steuerelement neben den einzelnen Elementen Kontrollkästchen angezeigt werden. Das ItemCheck-Ereignis tritt ein, wenn der Aktivierungszustand eines Elements geändert wird oder wenn die CheckBoxes-Eigenschaft auf true festgelegt wird. Sie können einen Ereignishandler für das ItemCheck-Ereignis erstellen, der bestimmte Aufgaben wie das Ändern des Zustands eines Elementsymbols oder eine andere anwendungsspezifische Aufgabe immer dann ausführt, wenn ein Element im ListView-Steuerelement aktiviert wird.
Hinweis
Wenn die Visible-Eigenschaft des ListView-Steuerelements beim Erstellen auf false festgelegt ist, wird das ItemCheck-Ereignis nicht ausgelöst. Sobald das Steuerelement sichtbar ist, wird das Ereignis unabhängig vom Zustand der Visible-Eigenschaft ausgelöst.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Beispiel
Im folgenden Codebeispiel wird ein aktiviertes ListView-Steuerelement zum Behandeln des ItemCheck-Ereignisses veranschaulicht. Die Methode verwendet die ItemCheckEventArgs.CurrentValue-Eigenschaft und die ItemCheckEventArgs.Index-Eigenschaft, um den Preis der ausgewählten Menüelemente abzurufen und zu berechnen. Fügen Sie zum Ausführen dieses Beispiels den folgenden Code in ein Formular ein, das die ListView ListView1
und die TextBoxTextbox1
enthält. Rufen Sie die InititalizeListView
-Methode aus dem Konstruktor des Formulars oder die Load
-Methode auf. Stellen Sie sicher, dass das ItemCheck-Ereignis dem Ereignishandler in diesem Beispiel zugeordnet ist.
Private Sub InitializeListView()
Me.ListView1 = New System.Windows.Forms.ListView
' Set properties such as BackColor, Location and Size
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.Size = New System.Drawing.Size(292, 130)
Me.ListView1.View = System.Windows.Forms.View.Details
Me.ListView1.HideSelection = False
' Allow user to select multiple items.
Me.ListView1.MultiSelect = True
' Show check boxes in the ListView.
Me.ListView1.CheckBoxes = True
'Set the column headers and populate the columns.
ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
Dim columnHeader1 As New ColumnHeader
With columnHeader1
.Text = "Breakfast Choices"
.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.79", "2.09", "2.69"}
Dim count As Integer
' Members are added one at a time, so call BeginUpdate to ensure
' the list is painted only once, rather than as each list item is added.
ListView1.BeginUpdate()
For count = 0 To foodList.Length - 1
Dim listItem As New ListViewItem(foodList(count))
listItem.SubItems.Add(foodPrice(count))
ListView1.Items.Add(listItem)
Next
'Call EndUpdate when you finish adding items to the ListView.
ListView1.EndUpdate()
Me.Controls.Add(Me.ListView1)
End Sub
...
Dim price As Double = 0.0
' Handles the ItemChecked event. The method uses the CurrentValue property
' of the ItemCheckEventArgs to retrieve and tally the price of the menu
' items selected.
Private Sub ListView1_ItemCheck1(ByVal sender As Object, _
ByVal e As System.Windows.Forms.ItemCheckEventArgs) _
Handles ListView1.ItemCheck
If (e.CurrentValue = CheckState.Unchecked) Then
price += Double.Parse( _
Me.ListView1.Items(e.Index).SubItems(1).Text)
ElseIf (e.CurrentValue = CheckState.Checked) Then
price -= Double.Parse( _
Me.ListView1.Items(e.Index).SubItems(1).Text)
End If
' Output the price to TextBox1.
TextBox1.Text = CType(price, String)
End Sub
private void InitializeListView()
{
this.ListView1 = new System.Windows.Forms.ListView();
// Set properties such as BackColor and DockStyle and Location.
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.Size = new System.Drawing.Size(292, 130);
this.ListView1.View = System.Windows.Forms.View.Details;
this.ListView1.HideSelection = false;
// Allow the user to select multiple items.
this.ListView1.MultiSelect = true;
// Show CheckBoxes in the ListView.
this.ListView1.CheckBoxes = true;
//Set the column headers and populate the columns.
ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
ColumnHeader columnHeader1 = new ColumnHeader();
columnHeader1.Text = "Breakfast Choices";
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.79", "2.09", "2.69"};
int count;
// Members are added one at a time, so call BeginUpdate to ensure
// the list is painted only once, rather than as each list item is added.
ListView1.BeginUpdate();
for(count = 0; count < foodList.Length; count++)
{
ListViewItem listItem = new ListViewItem(foodList[count]);
listItem.SubItems.Add(foodPrice[count]);
ListView1.Items.Add(listItem);
}
//Call EndUpdate when you finish adding items to the ListView.
ListView1.EndUpdate();
this.Controls.Add(this.ListView1);
}
...
double price = 0.0;
// Handles the ItemCheck event. The method uses the CurrentValue
// property of the ItemCheckEventArgs to retrieve and tally the
// price of the menu items selected.
private void ListView1_ItemCheck1(object sender,
System.Windows.Forms.ItemCheckEventArgs e)
{
if (e.CurrentValue==CheckState.Unchecked)
{
price += Double.Parse(
this.ListView1.Items[e.Index].SubItems[1].Text);
}
else if((e.CurrentValue==CheckState.Checked))
{
price -= Double.Parse(
this.ListView1.Items[e.Index].SubItems[1].Text);
}
// Output the price to TextBox1.
TextBox1.Text = price.ToString();
}
void InitializeListView()
{
this->ListView1 = gcnew System::Windows::Forms::ListView;
// Set properties such as BackColor and DockStyle and Location.
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->Size = System::Drawing::Size( 292, 130 );
this->ListView1->View = System::Windows::Forms::View::Details;
this->ListView1->HideSelection = false;
// Allow the user to select multiple items.
this->ListView1->MultiSelect = true;
// Show CheckBoxes in the ListView.
this->ListView1->CheckBoxes = true;
//Set the column headers and populate the columns.
ListView1->HeaderStyle = ColumnHeaderStyle::Nonclickable;
ColumnHeader^ columnHeader1 = gcnew ColumnHeader;
columnHeader1->Text = "Breakfast Choices";
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.79","2.09","2.69"};
int count;
// Members are added one at a time, so call BeginUpdate to ensure
// the list is painted only once, rather than as each list item is added.
ListView1->BeginUpdate();
for ( count = 0; count < foodList->Length; count++ )
{
ListViewItem^ listItem = gcnew ListViewItem( foodList[ count ] );
listItem->SubItems->Add( foodPrice[ count ] );
ListView1->Items->Add( listItem );
}
//Call EndUpdate when you finish adding items to the ListView.
ListView1->EndUpdate();
this->Controls->Add( this->ListView1 );
}
...
double price;
// Handles the ItemCheck event. The method uses the CurrentValue
// property of the ItemCheckEventArgs to retrieve and tally the
// price of the menu items selected.
void ListView1_ItemCheck1( Object^ /*sender*/, System::Windows::Forms::ItemCheckEventArgs^ e )
{
if ( e->CurrentValue == CheckState::Unchecked )
{
price += Double::Parse( this->ListView1->Items[ e->Index ]->SubItems[ 1 ]->Text );
}
else
if ( (e->CurrentValue == CheckState::Checked) )
{
price -= Double::Parse( this->ListView1->Items[ e->Index ]->SubItems[ 1 ]->Text );
}
// Output the price to TextBox1.
TextBox1->Text = price.ToString();
}
private void InitializeListView()
{
this.listView1 = new System.Windows.Forms.ListView();
// Set properties such as BackColor and DockStyle and Location.
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_Size(new System.Drawing.Size(292, 130));
this.listView1.set_View(System.Windows.Forms.View.Details);
this.listView1.set_HideSelection(false);
// Allow the user to select multiple items.
this.listView1.set_MultiSelect(true);
// Show CheckBoxes in the ListView.
this.listView1.set_CheckBoxes(true);
//Set the column headers and populate the columns.
listView1.set_HeaderStyle(ColumnHeaderStyle.Nonclickable);
ColumnHeader columnHeader1 = new ColumnHeader();
columnHeader1.set_Text("Breakfast Choices");
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.79",
"2.09", "2.69" };
int count;
// Members are added one at a time, so call BeginUpdate to ensure
// the list is painted only once, rather than as each list item is added.
listView1.BeginUpdate();
for (count = 0; count < foodList.length; count++) {
ListViewItem listItem =
new ListViewItem((String)foodList.get_Item(count));
listItem.get_SubItems().Add((String)foodPrice.get_Item(count));
listView1.get_Items().Add(listItem);
}
//Call EndUpdate when you finish adding items to the ListView.
listView1.EndUpdate();
this.get_Controls().Add(this.listView1);
} //InitializeListView
...
private double price = 0.0;
// Handles the ItemCheck event. The method uses the CurrentValue
// property of the ItemCheckEventArgs to retrieve and tally the
// price of the menu items selected.
private void listView1_ItemCheck1(Object sender,
System.Windows.Forms.ItemCheckEventArgs e)
{
if (e.get_CurrentValue().Equals(CheckState.Unchecked)) {
price += System.Double.Parse(
this.listView1.get_Items().get_Item(e.get_Index()).
get_SubItems().get_Item(1).get_Text());
}
else {
if (e.get_CurrentValue().Equals(CheckState.Checked)) {
price -= System.Double.Parse(this.listView1.get_Items().
get_Item(e.get_Index()).get_SubItems().get_Item(1).
get_Text());
}
}
// Output the price to TextBox1.
textBox1.set_Text(((System.Double)price).ToString());
} //listView1_ItemCheck1
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
OnItemCheck
ItemCheckEventHandler-Delegat