用户在CheckedListBox中检查了项目

问题描述 投票:0回答:1

我有一个CheckedListBox。我想知道用户何时选中或取消选中某个项目。我尝试使用ItemCheck事件,但即使在以编程方式检查项目时它也会触发。我怎么能发现这个?

c# winforms checkedlistbox
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.