Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 事件与继承_C#_Events_Inheritance - Fatal编程技术网

C# 事件与继承

C# 事件与继承,c#,events,inheritance,C#,Events,Inheritance,一般来说,我对C#和GUI事件非常陌生 我有一个基本类: public partial class BaseClass : UserControl { private event DataChangeEventHandler mDataChangeEvent; public event DataChangeEventHandler DataChange { add { mDataChangeEvent += value; } remove

一般来说,我对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\u SelectedValueChanged”上达到断点,然后调用基类“Control1\u SelectedValueChanged”。但是,mDataChangeEvent为null。为什么?

使用此控件的窗体必须具有事件的处理程序。比如:

BaseClass baseClass = new BaseClass();
baseClass.DataChange += <EventHandlerHere>
BaseClass BaseClass=new BaseClass();
baseClass.DataChange+=

这意味着没有人在收听该事件。你错过了订阅活动?嗨,斯里拉姆,首先谢谢你。这是有道理的。我的派生类是订阅那个事件还是调用我的派生类的类,顺便问一下,它是由另一个类实例化的,还是我的另一个类订阅那个事件?我希望有意义