【问题标题】:cannot assign because it is a method group无法分配,因为它是一个方法组
【发布时间】:2019-11-13 16:41:26
【问题描述】:

我在其中一个用户控件中显示和隐藏我的用户控件我有另一个我想要的,当主用户控件显示时,另一个用户控件隐藏。

当我想为用户控件添加可见功能时,我得到了这个

private void AddVisibleChangedEventHandler()
{
        this.VisibleChanged += new EventHandler(VisibleChanged);
}

private void VisibleChanged(object sender, EventArgs e)
{
        MessageBox.Show("Visible change event raised!!!");
}

【问题讨论】:

  • 您正在尝试将事件处理程序分配给 方法,而不是事件。您要处理的事件是什么?它是在哪里定义的?
  • 请添加minimal reproducible example。从您的代码中很明显它为什么不起作用,但我怀疑还有更多代码让您认为它应该。您需要发布该内容,否则您将无法找到令人满意的解释。
  • 我看不出文档有什么不同:docs.microsoft.com/de-de/dotnet/api/…你确定你得到这个错误吗?
  • 我在其中一个用户控件中显示和隐藏我的用户控件我有另一个我想要的当主用户控件显示时,另一个用户控件隐藏
  • 是的,我认为问题在于用户控件

标签: c# events


【解决方案1】:

重命名您的事件处理函数。您已经声明了一个名为 VisibleChanged 的方法。此名称已在 UserControl 中定义为事件。将您的方法命名为其他任何名称,它将开始正常工作。例如:

private void AddVisibleChangedEventHandler()
{
    this.VisibleChanged += MyVisibleChangedHandler;
}

private void MyVisibleChangedHandler(object sender, EventArgs e)
{
    MessageBox.Show("Visible change event raised!!!");
}

【讨论】:

    【解决方案2】:

    你需要像这样在你的类中声明一个事件:

    public event EventHandler ExampleEvent;

    然后您需要将方法委托与该事件相关联,将该方法/委托转换为事件处理程序。

    this.ExampleEvent+= this.ExampleEventHandlerClassMethod;

    或静态方法

    this.ExampleEvent += ExampleClass.ExampleStaticEventHandler;

    您的示例看起来很简短,但看起来该类要么有一个名为 VisibleChanged 的事件,要么您声明了一个名为 Visible Changed 的方法,然后尝试分配该方法来处理自己,这没有意义。

    如果您已经拥有该事件,那么您应该尝试将用于处理该事件的方法名称更改为 VisibleChangedHandler 之类的名称,然后执行 this.VisibleChanged += this.VisibleChangedHandler;

    这看起来很相关: Cannot Assign because it is a method group C#?

    还有这个: https://docs.microsoft.com/en-us/dotnet/standard/events/

    【讨论】:

    • c 无法访问
    • 什么是'c'
    • c 是具有事件ExampleEvent 的类的实例。这是我的回答中的一个错误,您可以尝试this 而不是c,除非您想从类外部绑定事件处理程序,在这种情况下您将使用instanceOfExampleClass.ExampleEvent += ExampleEventHandler
    猜你喜欢
    • 1970-01-01
    • 2013-11-15
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多