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;
您不需要创建新的委托来符合基于事件的模式。在您的控制下创建一个简单的事件:
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
非常重要,因为如果事件没有订阅者,它将抛出异常。