UserControl中的C#委托和事件

本文关键字:事件 中的 UserControl | 更新日期: 2023-09-27 18:28:16

我有类似于ListView的UserControl。我想从ListView创建事件加工删除项。

我这么做了。但我不知道该怎么做。

    public partial class ImagesSetEditor : UserControl
{
    public delegate void ImageRemovedEventHandler(object sender, ImagesSetEditor e);
    public event ImageRemovedEventHandler ImageRemovedEvent;

UserControl中的C#委托和事件

您不需要创建新的委托来符合基于事件的模式。在您的控制下创建一个简单的事件:

public event EventHandler ImageRemoved;

如果您需要传递任何自定义分段,请创建一个从EventArgs派生的类,如下所示:

public class ImageRemovedEventArgs : EventArgs
{
     public int Index; //for example
}

然后将事件声明为:

public event EventHandler<ImageRemovedEventArgs> ImageRemoved;

然后,你会像这样触发事件:

if (ImageRemoved != null) ImageRemoved(this, new ImageRemovedEventArgs() { Index = yourValue });

检查ImageRemoved != null非常重要,因为如果事件没有订阅者,它将抛出异常。