【问题标题】:Is there a checkedListBox ItemUnchecked/CheckChanged event of some kind?是否有某种类型的checkedListBox Item Unchecked/CheckedChanged 事件?
【发布时间】:2019-12-21 20:56:28
【问题描述】:

我知道有一个名为 ItemChecked 的 checkedListBox 事件,并且我认为个别复选框有一个 CheckChanged 事件,但是否有对应于 checkedListBox 的 ItemUnchecked 或 CheckChanged 事件?如果是这样,我将如何订阅并实施/使用它?

当我使用推荐的“NewValue”方法时,它只是返回一个错误并指出:“'EventArgs' 不包含 'NewValue' 的定义,并且没有可访问的扩展方法 'NewValue' 接受类型的第一个参数'可以找到 EventArgs(您是否缺少 using 指令或程序集引用?)”。有人有什么建议吗?

我的目标是创建一段代码作为 ItemChecked 事件的对应部分,这样如果用户取消选中一个框,它将撤消检查事件的影响。

我希望能够做到的示例:

private void checkedListBoxBasics_ItemUnCheck(object sender, EventArgs e)
        {
            //The variable "index" was instantiated previously in the code.
            //get index of checked box and set variable index to that
            index = checkedListBoxBasics.SelectedIndex;

            if (index == 0)
            {
                updateResourcesUncheck("checkedListBoxBasics", 100000, 0, 0, 0, 0, 0, 0, 0);
            }

        }

【问题讨论】:

  • 我不确定。当它说我可以检查复选框的状态时,是否意味着我可以使用 if 语句来确定 ItemCheck 事件的复选框状态更改的结果,虽然它被称为 ItemCheck 事件,但它是一个每当项目的检查状态更改时触发的事件?

标签: c# forms checkedlistbox eventargs


【解决方案1】:
    private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
    {
        // get the NewValue
        bool isChecked = (e.NewValue == CheckState.Checked);

        // if checked
        if (isChecked)
        {
            // apply event for isChecked
        }
        else
        {
            // apply event for unChecked
        }
    }

【讨论】:

  • 您从哪里获得 NewValue 属性?
  • e.NewValue 是 ItemCheckEventArgs 的一部分。 E.CurrentValue 确实是旧值。
  • 嗯,我实现了你提交的代码,它说 e.NewValue 是问题的根源。
  • 我不确定我是否理解“它说 e.NewValue 是问题的根源”是什么意思。您收到错误消息吗?
  • 它只是用红色下划线并说“'EventArgs'不包含'NewValue'的定义,并且找不到接受'EventArgs'类型的第一个参数的可访问扩展方法'NewValue'(您是否缺少 using 指令或程序集引用?)"
猜你喜欢
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
相关资源
最近更新 更多