UserControl中的C#委托和事件

时间:2013-08-20 11:33:08

标签: c# .net

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

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

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

1 个答案:

答案 0 :(得分:0)

您无需创建新的委托以符合基于事件的模式。在控件中创建一个简单的事件:

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非常重要,因为如果事件没有订阅者,它会抛出异常。