定义窗口窗体自定义控件的事件
本文关键字:事件 自定义控件 窗体 窗口 定义 | 更新日期: 2023-09-27 18:33:54
我正在处理一个窗体自定义控件。该控件是一个类似于 Visual studio(C#( MonthCalendar 控件的 MonthCalendar,我想为我的控件定义一个事件。如何为此表单自定义控件定义新事件?
如果您的活动不应提供任何其他信息(Foo 是您的活动名称(:
public event EventHandler Foo;
并以这种方式提出它:
protected virtual void OnFoo()
{
if (Foo != null)
Foo(this, EventArgs.Empty);
}
如果需要将一些附加信息传递给事件处理程序,则通过从类继承EvenArgs
创建自定义参数类
public class FooEventArgs : EventArgs
{
public string Message { get; private set; }
public FooEventArgs(string message)
{
Message = message;
}
}
以这种方式声明事件:
public event EventHandler<FooEventArgs> Foo;
并以这种方式提出它:
protected virtual void OnFoo(string message)
{
if (Foo != null)
Foo(this, new FooEventArgs(message));
}
它的良好做法是创建受保护的方法,用于由声明事件的类的后代引发事件。使用事件命名约定的好做法:
- 将后缀
-ing
添加到之前引发的事件的事件名称发生了一些事情(通常您可以取消此类事件((例如验证( - 在事件发生后引发的事件(例如单击(的事件名称中添加后缀
-ed
正如托尔斯滕所说,创建virtual
方法来提高事件的良好做法。它不仅允许从后代引发事件,还可以禁用事件引发,或在事件引发之前/之后添加一些行为。
public event EventHandler<EventArgs> YourEvent;