ListView.CheckedItems-Eigenschaft
Ruft die gegenwärtig im Steuerelement aktivierten Elemente ab.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public ReadOnly Property CheckedItems As CheckedListViewItemCollection
'Usage
Dim instance As ListView
Dim value As CheckedListViewItemCollection
value = instance.CheckedItems
public CheckedListViewItemCollection CheckedItems { get; }
public:
property CheckedListViewItemCollection^ CheckedItems {
CheckedListViewItemCollection^ get ();
}
/** @property */
public CheckedListViewItemCollection get_CheckedItems ()
public function get CheckedItems () : CheckedListViewItemCollection
Eigenschaftenwert
Eine ListView.CheckedListViewItemCollection, die die gegenwärtig aktivierten Elemente enthält. Wenn gegenwärtig keine Elemente aktiviert sind, wird eine leere ListView.CheckedListViewItemCollection zurückgegeben.
Hinweise
Diese Eigenschaft ist nur hilfreich, wenn die CheckBoxes-Eigenschaft des ListView-Steuerelements auf true festgelegt ist. Die CheckedItems-Eigenschaft gibt eine Auflistung mit allen im Steuerelement aktivierten Elementen zurück. Weitere Informationen zum Bearbeiten der Elemente in der Auflistung finden Sie unter ListView.CheckedListViewItemCollection.
Wenn Sie nicht die aktivierten Elemente, sondern eine Auflistung der Indexpositionen in der ListView.ListViewItemCollection für die im ListView-Steuerelement aktivierten Elemente abrufen möchten, verwenden Sie die CheckedIndices-Eigenschaft.
Beispiel
Im folgenden Codebeispiel wird eine aktivierte ListView zum Behandeln des ItemChecked-Ereignisses veranschaulicht. Im Beispiel wird die CheckedItems-Eigenschaft verwendet, um bei jeder Aktivierung oder Deaktivierung eines Elements einen neuen Preis zu berechnen. Fügen Sie zum Ausführen dieses Beispiels den folgenden Code in ein Formular ein, das die ListViewListView1
und die TextBoxTextbox1
enthält. Rufen Sie die InititalizeListView
-Methode aus dem Konstruktor des Formulars oder die Load
-Methode auf.
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
...
' Handles the ItemCheck event. The method loops through all the
' checked items and tallies a new price each time an item is
' checked or unchecked. It outputs the price to TextBox1.
Private Sub ListView1_ItemCheck2(ByVal sender As Object, _
ByVal e As System.Windows.Forms.ItemCheckEventArgs) _
Handles ListView1.ItemCheck
Dim item As ListViewItem
Dim price As Double = 0.0
Dim checkedItems As ListView.CheckedListViewItemCollection = _
ListView1.CheckedItems
For Each item In checkedItems
price += Double.Parse(item.SubItems(1).Text)
Next
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);
}
...
// Handles the ItemChecked event. The method loops through all the
// checked items and tallies a new price each time an item is
// checked or unchecked. It outputs the price to TextBox1.
private void ListView1_ItemCheck2(object sender,
System.Windows.Forms.ItemCheckEventArgs e)
{
double price = 0.0;
ListView.CheckedListViewItemCollection checkedItems =
ListView1.CheckedItems;
foreach ( ListViewItem item in checkedItems )
{
price += Double.Parse(item.SubItems[1].Text);
}
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 );
}
...
// Handles the ItemChecked event. The method loops through all the
// checked items and tallies a new price each time an item is
// checked or unchecked. It outputs the price to TextBox1.
void ListView1_ItemCheck2( Object^ /*sender*/, System::Windows::Forms::ItemCheckEventArgs^ e )
{
double price = 0.0;
ListView::CheckedListViewItemCollection^ checkedItems = ListView1->CheckedItems;
System::Collections::IEnumerator^ myEnum = checkedItems->GetEnumerator();
while ( myEnum->MoveNext() )
{
ListViewItem^ item = safe_cast<ListViewItem^>(myEnum->Current);
price += Double::Parse( item->SubItems[ 1 ]->Text );
}
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
...
// Handles the ItemChecked event. The method loops through all the
// checked items and tallies a new price each time an item is
// checked or unchecked. It outputs the price to TextBox1.
private void listView1_ItemCheck2(Object sender,
System.Windows.Forms.ItemCheckEventArgs e)
{
double price = 0.0;
ListView.CheckedListViewItemCollection checkedItems =
listView1.get_CheckedItems();
for (int iCtr = 0; iCtr < checkedItems.get_Count(); iCtr++) {
ListViewItem item = checkedItems.get_Item(iCtr);
price +=
System.Double.Parse(item.get_SubItems().get_Item(1).get_Text());
}
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_ItemCheck2
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
Siehe auch
Referenz
ListView-Klasse
ListView-Member
System.Windows.Forms-Namespace
ListView.CheckedListViewItemCollection
ListView.CheckedIndices-Eigenschaft