ItemCheckEventArgs 类

CheckedListBoxListView 控件的 ItemCheck 事件提供数据。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
<ComVisibleAttribute(True)> _
Public Class ItemCheckEventArgs
    Inherits EventArgs
用法
Dim instance As ItemCheckEventArgs
[ComVisibleAttribute(true)] 
public class ItemCheckEventArgs : EventArgs
[ComVisibleAttribute(true)] 
public ref class ItemCheckEventArgs : public EventArgs
/** @attribute ComVisibleAttribute(true) */ 
public class ItemCheckEventArgs extends EventArgs
ComVisibleAttribute(true) 
public class ItemCheckEventArgs extends EventArgs

备注

当选中列表框中的项的选中状态更改时,ItemCheck 事件发生。ItemCheckEventArgs 类指定要更改的项的索引、该项的复选框的当前值和要为该复选框设置的新值。

有关处理事件的更多信息,请参见 使用事件

示例

下面的代码示例阐释了选中的 ListView 控件,该控件处理 ListView.ItemChecked 事件。该方法使用 ItemCheckEventArgs 对象的 CurrentValueIndex 属性来检索所选菜单项的价格并计算所选菜单项的价格总和。若要运行此示例,请将以下代码粘贴到一个包含名为 ListView1ListView 和名为 Textbox1TextBox 的窗体中。从窗体的构造函数或 Load 方法调用 InititalizeListView 方法。确保所有事件均与其事件处理方法相关联。

    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

继承层次结构

System.Object
   System.EventArgs
    System.Windows.Forms.ItemCheckEventArgs

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

ItemCheckEventArgs 成员
System.Windows.Forms 命名空间
CheckedListBox 类
CheckedListBox.ItemCheck 事件