用户在CheckedListBox中选中的项目

时间:2019-03-17 19:15:21

标签: c# winforms checkedlistbox

我有一个print("aaaaa".rindex("aa")) # -> 3 。我想知道用户何时选中或取消选中项目。我尝试使用CheckedListBox事件,但是即使以编程方式检查了一个项目,它也会触发。如何检测到这个?

1 个答案:

答案 0 :(得分:0)

使用ItemCheck事件处理程序是检测用户何时在CheckedListBox中打勾或取消打勾的正确方法。是的,当以编程方式选中/取消选中该项目时也会触发。

如果您不希望以编程方式设置/取消设置项目时触发事件,则应事先删除事件处理程序。

假设您的事件处理程序如下:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.NewValue == CheckState.Checked)
    {
        Debug.Print("Checked");
    }
    else if (e.NewValue == CheckState.Unchecked)
    {
        Debug.Print("Un-Checked");
    }
}

以编程方式设置/取消设置项目之前,应添加以下行:

this.checkedListBox1.ItemCheck -= this.checkedListBox1_ItemCheck;

在代码中设置/取消设置项目后,请使用以下命令重新添加事件处理程序:

this.checkedListBox1.ItemCheck += this.checkedListBox1_ItemCheck;