ListView.ItemCheck 事件

定义

当某项的选中状态更改时发生。

C#
public event System.Windows.Forms.ItemCheckEventHandler ItemCheck;
C#
public event System.Windows.Forms.ItemCheckEventHandler? ItemCheck;

事件类型

示例

下面的代码示例演示了一个用于处理 事件的选中 ListView 控件 ItemCheck 。 方法使用 ItemCheckEventArgs.CurrentValueItemCheckEventArgs.Index 属性来检索和计算所选菜单项的价格。 若要运行此示例,请将以下代码粘贴到包含 ListView 名为 ListView1TextBoxTextbox1窗体中。 InitializeListView从窗体的构造函数或Load方法调用 方法。 确保事件 ItemCheck 与此示例中的事件处理程序相关联。

C#
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);
}
C#
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();
}

注解

属性CheckBoxes必须设置为 true,才能在控件中的每个项ListView旁边显示检查框。 当ItemCheck项的检查状态更改或 属性设置为 trueCheckBoxes,会发生 该事件。 你可以为 ItemCheck 事件创建事件处理程序以执行任务,例如,每次在控件中 ListView 签入某个项时更改项图标或其他特定于应用程序的任务的状态。

备注

如果在引发事件时 ItemCheck 尚未创建窗口句柄,则将延迟该事件。 在窗体) 显示 (创建窗口句柄后,将引发任何延迟 ItemCheck 事件。 有关详细信息,请参阅 HandleCreated

有关处理事件的详细信息,请参阅 处理和引发事件

适用于

产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅