c# - '...' 没有重载匹配委托(delegate) 'System.Windows.Forms.ItemCheckEventHandler'

标签 c#

看完this问题,对我来说很明显我写错了我的事件。但是,我不知道如何才能重写我使用 Object sender 编写的内容。我的事件将所选复选框中的文本添加到二维列表 (report),report 中的顺序必须与所选复选框的顺序相同。此外,一次最多只能选中两个复选框。这是事件:

void checkedListBox_ItemCheck(CheckedListBox chkdlstbx, ItemCheckEventArgs e)
    {
        int index = Convert.ToInt32(chkdlstbx.Tag);
        if ((chkdlstbx.CheckedItems.Count == 0) && (e.CurrentValue == CheckState.Unchecked))
        {
            Var.report[index].Add(chkdlstbx.Text);
        }
        if ((chkdlstbx.CheckedItems.Count == 1) && (e.CurrentValue == CheckState.Checked))
        {
            Var.report[index].RemoveAt(0);
        }
        if ((chkdlstbx.CheckedItems.Count == 1) && (e.CurrentValue == CheckState.Unchecked))
        {
            if (chkdlstbx.SelectedIndex < chkdlstbx.CheckedIndices[0])
            {
                Var.report[index].Insert(0, chkdlstbx.Text);
            }
            else
            {
                Var.report[index].Add(chkdlstbx.Text);
            }
        }
        if ((chkdlstbx.CheckedItems.Count == 2) && (e.CurrentValue == CheckState.Checked))
        {
            if (chkdlstbx.SelectedIndex == chkdlstbx.CheckedIndices[0])
            {
                Var.report[index].RemoveAt(0);
            }
            else
            {
                Var.report[index].RemoveAt(1);
            }
        }
        if ((chkdlstbx.CheckedItems.Count == 2) && (e.CurrentValue == CheckState.Unchecked))
        {
            e.NewValue = CheckState.Unchecked;
        }
        updateReport();
    }

它被这条线调用:

chkdlstbx.ItemCheck += new ItemCheckEventHandler(checkedListBox_ItemCheck);

如果有人可以帮助我使用对象重写我的事件,那就太棒了。我真的不确定我还能如何解决这个问题!

最佳答案

这应该足够了:

void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
    CheckedListBox chkdlstbx = sender as CheckedListBox;
    if (chkdlstbx == null)
    {
        throw new InvalidArgumentException();
    }
    ....
}

关于c# - '...' 没有重载匹配委托(delegate) 'System.Windows.Forms.ItemCheckEventHandler',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30814772/

相关文章:

c# - C# 中的泛型继承?

c# - 彩色进度条

c# - 从 await 恢复是如何实现的?

c# - 如何将参数从 Controller 传递到 FormDialog 状态模型

c# - 创建计时器并启动它并随时获取它的值 c#

c# - 剪贴板在 C# 程序退出时自动清除

c# - 没有 INotifyPropertyChanged 的​​更改通知? (摘自 Pro WPF in C# 2010)

c# - 查找网络中的所有IP地址

c# - TPL DataFlow 无法处理 ActionBlock 中的异常

c# - 使用管道中的数据