ListView.CheckedItems Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém os itens marcados no momento no controle.
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
Valor da propriedade
Um ListView.CheckedListViewItemCollection que contém os itens marcados no momento. Se nenhum item estiver marcado no momento, um ListView.CheckedListViewItemCollection vazio será retornado.
- Atributos
Exemplos
O exemplo de código a seguir demonstra uma verificação ListView que manipula o ItemChecked evento. O exemplo usa a CheckedItems propriedade para calcular um novo preço sempre que um item é marcado ou desmarcado. Para executar este exemplo, cole o código a seguir em um formulário que contém um ListView nomeado ListView1
e um TextBox chamado Textbox1
. Chame o InitializeListView
método do construtor ou Load
método do formulário.
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
Comentários
Essa propriedade só é útil quando a CheckBoxes propriedade do ListView controle é definida true
como . A CheckedItems propriedade retorna uma coleção que contém todos os itens que são verificados no controle . Para obter mais informações sobre como manipular os itens na coleção, consulte ListView.CheckedListViewItemCollection.
Se você quiser obter uma coleção das posições de índice dentro do ListView.ListViewItemCollection dos itens que são verificados no ListView controle, em vez dos itens que são verificados, use a CheckedIndices propriedade .