简体   繁体   English

无法分配,因为它是一个方法组

[英]cannot assign because it is a method group

I Show and Hide my user controls in one of the usercontrols I have another one I want when the main usercontrol Show,the other usercontrol hide.我在其中一个用户控件中显示和隐藏我的用户控件当主用户控件显示时,我想要另一个用户控件,而另一个用户控件隐藏。

I get this when I want to add visible function for usercontrol当我想为用户控件添加可见的 function 时,我得到了这个

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

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

You need to have an event declared in your class like this:您需要在 class 中声明一个事件,如下所示:

public event EventHandler ExampleEvent;

and then you need to associate a method delegate to that event, turning that method/delegate into the event handler.然后您需要将方法委托与该事件相关联,将该方法/委托转换为事件处理程序。

this.ExampleEvent+= this.ExampleEventHandlerClassMethod;

or a static method或 static 方法

this.ExampleEvent += ExampleClass.ExampleStaticEventHandler;

Your example looks very brief, but it looks like that class either has an event called VisibleChanged or your declaring a method called Visible Changed and then trying to assign that method to handle itself, which doesn't make sense.您的示例看起来非常简短,但看起来 class 要么有一个名为VisibleChanged的事件,要么您声明了一个名为Visible Changed的方法,然后尝试分配该方法来处理自身,这没有意义。

If you already have the event, then you should try changing your method name that you want to use to handle that event to something like VisibleChangedHandler and then do this.VisibleChanged += this.VisibleChangedHandler;如果您已经拥有该事件,那么您应该尝试将要用于处理该事件的方法名称更改为类似VisibleChangedHandler的名称,然后执行this.VisibleChanged += this.VisibleChangedHandler;

This looks relevant: Cannot Assign because it is a method group C#?这看起来很相关: 无法分配,因为它是方法组 C#?

And this: https://docs.microsoft.com/en-us/dotnet/standard/events/而这个: https://docs.microsoft.com/en-us/dotnet/standard/events/

Rename your event handler function.重命名您的事件处理程序 function。 You have declared a method with the name VisibleChanged .您已经声明了一个名为VisibleChanged的方法。 This name is already defined as an event in UserControl .此名称已在UserControl中定义为事件。 Name your method anything else and it will start working correctly.将您的方法命名为其他任何名称,它将开始正常工作。 For example:例如:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM