ListView.CheckedItems 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得控制項中目前選取的項目。
public:
property System::Windows::Forms::ListView::CheckedListViewItemCollection ^ CheckedItems { System::Windows::Forms::ListView::CheckedListViewItemCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Windows.Forms.ListView.CheckedListViewItemCollection CheckedItems { get; }
[<System.ComponentModel.Browsable(false)>]
member this.CheckedItems : System.Windows.Forms.ListView.CheckedListViewItemCollection
Public ReadOnly Property CheckedItems As ListView.CheckedListViewItemCollection
屬性值
ListView.CheckedListViewItemCollection,包含目前選取的項目。 如果目前並未選取項目,則傳回空白的 ListView.CheckedListViewItemCollection。
- 屬性
範例
下列程式碼範例示範已檢查 ListView 來處理 ItemChecked 事件。 此範例會 CheckedItems 使用 屬性,在每次核取或取消核取專案時,以計算新的價格。 若要執行此範例,請將下列程式碼貼到包含 ListView 具名 ListView1
和 TextBox 具名 Textbox1
的表單中。
InitializeListView
從表單的建構函式或 Load
方法呼叫 方法。
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 );
}
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);
}
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 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();
}
// 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();
}
' 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
備註
只有當 控制項的 ListView 屬性設定為 true
時 CheckBoxes ,這個屬性才有用。 屬性 CheckedItems 會傳回集合,其中包含控制項中核取的所有專案。 如需有關如何操作集合中專案的詳細資訊,請參閱 ListView.CheckedListViewItemCollection 。
如果您想要取得控制項中 ListView 已簽入之專案的 中的 ListView.ListViewItemCollection 索引位置集合,而不是已核取的專案,請使用 CheckedIndices 屬性。