Assembly: System.Windows.Forms (in system.windows.forms.dll)
Public Event ItemCheck As ItemCheckEventHandler
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 supporta l'utilizzo di eventi ma non la dichiarazione di nuovi.
È necessario che la proprietà CheckBoxes sia impostata su true, al fine di visualizzare le caselle di controllo accanto a ciascun elemento nel controllo ListView. L'evento ItemCheck si verifica se lo stato di selezione di un elemento viene modificato o se la proprietà CheckBoxes è impostata su true. È possibile creare un gestore eventi per l'evento ItemCheck per eseguire determinate attività, ad esempio la modifica dello stato dell'icona di un elemento o un'altra attività specifica di un'applicazione, ogni volta che un elemento viene selezionato nel controllo ListView.
Nota |
|---|
| Se la proprietà Visible del controllo ListView è impostata su false al momento della creazione del controllo, l'evento ItemCheck non verrà generato. Una volta che il controllo diventerà visibile, l'evento verrà generato indipendentemente dallo stato della proprietà Visible. |
Per ulteriori informazioni sulla gestione di eventi, vedere Utilizzo degli eventi.
Nel codice di esempio riportato di seguito viene illustrato un controllo ListView selezionato che gestisce l'evento ItemCheck. Il metodo utilizza le proprietà ItemCheckEventArgs.CurrentValue e ItemCheckEventArgs.Index per recuperare e calcolare il prezzo delle voci di menu selezionate. Per eseguire l'esempio, incollare il codice riportato di seguito in un form contenente una classe ListView denominata ListView1 e una classe TextBox denominata Textbox1. Chiamare il metodo InititalizeListView dal costruttore del form o dal metodo Load. Assicurarsi che l'evento ItemCheck sia associato al gestore eventi riportato nell'esempio.
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
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
Nota