CheckedListBox.CheckedIndexCollection 类

封装 CheckedListBox 中选中的项(包括处于不确定状态的项)的索引集合。

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

语法

声明
Public Class CheckedIndexCollection
    Implements IList, ICollection, IEnumerable
用法
Dim instance As CheckedIndexCollection
public class CheckedIndexCollection : IList, ICollection, IEnumerable
public ref class CheckedIndexCollection : IList, ICollection, IEnumerable
public class CheckedIndexCollection implements IList, ICollection, 
    IEnumerable
public class CheckedIndexCollection implements IList, ICollection, 
    IEnumerable

备注

选中的索引集合是 CheckedListBox 控件中所有项集合的索引的子集。这些索引指定处于选中状态或不确定状态的项。

下表是控件中项(控件中包含的所有项)的索引集合的示例。

索引

复选状态

0

对象 1

Unchecked

1

对象 2

Checked

2

对象 3

Unchecked

3

对象 4

Indeterminate

4

对象 5

Checked

基于上面的示例,下表显示选中项索引的索引集合。

索引

项的索引

0

1

1

3

2

4

CheckedListBox 类包含两个用于访问存储索引的成员:Item 属性和 IndexOf 方法。

基于上面的示例,对 Item 属性的调用(参数值为 1)返回值 3。对 IndexOf 的调用(参数为 3)返回值 1。

示例

下面的示例枚举在 CheckedListBox.CheckedIndexCollection 中选中的项以查看项的复选状态。本示例演示了使用 GetItemCheckState 方法设置项的复选状态。本示例还演示了使用 CheckedIndices 属性获取 CheckedListBox.CheckedIndexCollection,以及使用 CheckedItems 属性获取 CheckedListBox.CheckedItemCollection

第一个循环使用 GetItemCheckState 方法获取每个选中项的 CheckState(给定该项的索引)。第二个循环也使用 GetItemCheckState,但是使用 ListBox.ObjectCollection.IndexOf 方法来检索该项的索引。

Private Sub WhatIsChecked_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WhatIsChecked.Click
    ' Display in a message box all the items that are checked.
    Dim indexChecked As Integer
    Dim itemChecked As Object
    Const quote As String = """"

    ' First show the index and check state of all selected items.
    For Each indexChecked In CheckedListBox1.CheckedIndices
        ' The indexChecked variable contains the index of the item.
        MessageBox.Show("Index#: " + indexChecked.ToString() + ", is checked. Checked state is:" + _
                        CheckedListBox1.GetItemCheckState(indexChecked).ToString() + ".")
    Next

    ' Next show the object title and check state for each item selected.
    For Each itemChecked In CheckedListBox1.CheckedItems

        ' Use the IndexOf method to get the index of an item.
        MessageBox.Show("Item with title: " + quote + itemChecked.ToString() + quote + _
                        ", is checked. Checked state is: " + _
                        CheckedListBox1.GetItemCheckState(CheckedListBox1.Items.IndexOf(itemChecked)).ToString() + ".")
    Next

End Sub
private void WhatIsChecked_Click(object sender, System.EventArgs e) {
    // Display in a message box all the items that are checked.

    // First show the index and check state of all selected items.
    foreach(int indexChecked in checkedListBox1.CheckedIndices) {
        // The indexChecked variable contains the index of the item.
        MessageBox.Show("Index#: " + indexChecked.ToString() + ", is checked. Checked state is:" +
                        checkedListBox1.GetItemCheckState(indexChecked).ToString() + ".");
    }

    // Next show the object title and check state for each item selected.
    foreach(object itemChecked in checkedListBox1.CheckedItems) {

        // Use the IndexOf method to get the index of an item.
        MessageBox.Show("Item with title: \"" + itemChecked.ToString() + 
                        "\", is checked. Checked state is: " + 
                        checkedListBox1.GetItemCheckState(checkedListBox1.Items.IndexOf(itemChecked)).ToString() + ".");
    }

}
void WhatIsChecked_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
   
   // Display in a message box all the items that are checked.
   // First show the index and check state of all selected items.
   IEnumerator^ myEnum1 = checkedListBox1->CheckedIndices->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      Int32 indexChecked =  *safe_cast<Int32^>(myEnum1->Current);
      
      // The indexChecked variable contains the index of the item.
      MessageBox::Show( String::Concat( "Index#: ", indexChecked, ", is checked. Checked state is: ", checkedListBox1->GetItemCheckState( indexChecked ), "." ) );
   }

   
   // Next show the Object* title and check state for each item selected.
   IEnumerator^ myEnum2 = checkedListBox1->CheckedItems->GetEnumerator();
   while ( myEnum2->MoveNext() )
   {
      Object^ itemChecked = safe_cast<Object^>(myEnum2->Current);
      
      // Use the IndexOf method to get the index of an item.
      MessageBox::Show( String::Concat( "Item with title: \"", itemChecked, "\", is checked. Checked state is: ", checkedListBox1->GetItemCheckState( checkedListBox1->Items->IndexOf( itemChecked ) ), "." ) );
   }
}

private void whatIsChecked_Click(Object sender, System.EventArgs e)
{
    // Display in a message box all the items that are checked.
    // First show the index and check state of all selected items.
    IEnumerator objEnum = checkedListBox1.get_CheckedIndices().
        GetEnumerator();

    while (objEnum.MoveNext()) {
        int indexChecked = (int)(Int32)(objEnum.get_Current());

        // The indexChecked variable contains the index of the item.
        MessageBox.Show("Index#: " + (Int32)indexChecked 
            + ", is checked. Checked state is:" 
            + checkedListBox1.GetItemCheckState(indexChecked).ToString() 
            + ".");
    }

    // Next show the object title and check state for each item selected.
    for (int iCtr = 0; 
        iCtr < checkedListBox1.get_CheckedItems().get_Count(); 
        iCtr++) {
        Object itemChecked = 
            checkedListBox1.get_CheckedItems().get_Item(iCtr);

        // Use the IndexOf method to get the index of an item.
        MessageBox.Show("Item with title: \"" + itemChecked.ToString() 
            + "\", is checked. Checked state is: " 
            + checkedListBox1.GetItemCheckState(
            checkedListBox1.get_Items().IndexOf(itemChecked)).ToString() 
            + ".");
    }
} //whatIsChecked_Click

继承层次结构

System.Object
  System.Windows.Forms.CheckedListBox.CheckedIndexCollection

线程安全

此类型的任何公共静态(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

请参见

参考

CheckedListBox.CheckedIndexCollection 成员
System.Windows.Forms 命名空间
CheckedListBox.CheckedIndices 属性
CheckedListBox.CheckedItems 属性
CheckedListBox.Items 属性