ListView.ItemCheck Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando cambia el estado de activación de un elemento.
public:
event System::Windows::Forms::ItemCheckEventHandler ^ ItemCheck;
public event System.Windows.Forms.ItemCheckEventHandler ItemCheck;
public event System.Windows.Forms.ItemCheckEventHandler? ItemCheck;
member this.ItemCheck : System.Windows.Forms.ItemCheckEventHandler
Public Custom Event ItemCheck As ItemCheckEventHandler
Tipo de evento
Ejemplos
En el ejemplo de código siguiente se muestra un control comprobado ListView que controla el ItemCheck evento. El método usa las ItemCheckEventArgs.CurrentValue propiedades y ItemCheckEventArgs.Index para recuperar y contar el precio de los elementos de menú seleccionados. Para ejecutar este ejemplo, pegue el código siguiente en un formulario que contenga un ListView
denominado ListView1
y un TextBox
denominado Textbox1
. Llame al InitializeListView
método desde el constructor o Load
método del formulario. Asegúrese de que el ItemCheck evento está asociado al controlador de eventos en este ejemplo.
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
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();
}
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();
}
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
Comentarios
La CheckBoxes propiedad debe establecerse en true para que las casillas se muestren junto a cada elemento del ListView control. El ItemCheck evento se produce cuando cambia el estado de comprobación de un elemento o cuando la CheckBoxes propiedad está establecida true
en . Puede crear un controlador de eventos para que el ItemCheck evento realice tareas como cambiar el estado del icono de un elemento u otra tarea específica de la aplicación cada vez que un elemento esté protegido en el ListView control.
Nota
Si el identificador de ventana no se ha creado cuando se genera el ItemCheck evento, el evento se retrasará. Una vez creado el identificador de ventana (cuando se muestra el formulario), se generarán los eventos retrasados ItemCheck . Para obtener más información, vea HandleCreated.
Para obtener más información sobre el manejo de eventos, consulte controlar y provocar eventos.