[英]C# Events and Inheritance
我对C#和GUI事件很陌生,并且是新手。
我有一个基类:
public partial class BaseClass : UserControl
{
private event DataChangeEventHandler mDataChangeEvent;
public event DataChangeEventHandler DataChange
{
add
{
mDataChangeEvent += value;
}
remove
{
mDataChangeEvent -= value;
}
}
}
public delegate void DataChangeEventHandler(object sender, EventArgs e);
...
...
protected virtual void Control1_SelectedValueChanged(object sender, EventArgs e)
{
//some code do something
if(mDataChangeEvent != null)
{
EventArgs e = new EventArgs();
mDataChangeEvent(this, e);
}
}
}
// derived class
public partial class DerivedClass : BaseClass
{
...
...
protected override void Control1_SelectedValueChanged(object sender, EventArgs e)
{
base.Control1_SelectedValueChanged(sender, e);
}
}
我通过调试器运行代码。 每当我将下拉控件更改为另一个值时,它将在派生类的Control1_SelectedValueChanged上达到断点,然后调用基类的Control1_SelectedValueChanged。 但是,mDataChangeEvent为null。 为什么?
使用此控件的窗体必须具有事件的处理程序。 就像是:
BaseClass baseClass = new BaseClass();
baseClass.DataChange += <EventHandlerHere>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.