识别CheckedListBox项已被选中

我从来没有处理过checkedListBox1。 我想要制作的程序将受益于使用它而不必使用多个复选框。

我有代码:

private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) { int selected = checkedListBox1.SelectedIndex; this.Text = checkedListBox1.Items[selected].ToString(); } 

这个问题是每次我点击框并突出显示,然后选择突出显示的对象。 我正在寻找的是识别所选内容的变化,而不是突出显示。

我还想知道的是,如果检查CheckListBox中的第一个索引项以及第三个索引项,我将如何检查它是否为真?

我确信我最终会弄明白,但看到代码会非常有帮助。

假设我有3个盒子:盒子A = messageBox.Show(“a”); 方框B = messageBox.Show(“b”); 方框C = messageBox.Show(“c”);

如果选中此框,它将仅显示mbox。 我想知道的是我如何检查它是否检查,例如,A和C是否被检查,以便如果我按下一个按钮,两个messageBoxes将显示“a”然后“c”

  private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { // a checkbox is changing // but value is not updated yet } private void checkedListBox1_MouseUp(object sender, MouseEventArgs e) { Debug.WriteLine(checkedListBox1.CheckedItems.Count); Debug.WriteLine(checkedListBox1.CheckedItems.Contains(checkedListBox1.Items[0])); } 

我想你应该在MouseUp中检查是否检查了1st。 和_ItemCheck用于复选框更改时,但值尚未更新。

请参阅参考: http : //msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.items.aspx

  // 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() + "."); } 

如果要获取所有已检查项的集合,请使用checkedListBox1.CheckedItems。 要在单击按钮时显示所有选中的项目,请使用以下命令:

 private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++) MessageBox.Show(checkedListBox1.CheckedItems[i].ToString()); } 

如果只需要它们的索引,请使用checkedListBox1.CheckedIndices。