1
저는 C# 및 GUI 이벤트 전반에 익숙하지 않고 매우 익숙하지 않습니다. 내가 디버거를 통해 내 코드를 실행C# 이벤트 및 상속
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입니다. 왜?
아무도 그 이벤트를 듣지 않는다는 의미입니다. 이벤트 구독을 놓친 적이 있습니까? –
안녕하세요. Sriram, 먼저 감사드립니다. 그건 의미가 있습니다. 내 파생 클래스가 AnotherClass에 의해 인스턴스화되었거나 AnotherClass가 해당 이벤트에 가입 한 파생 클래스를 사용하는 해당 이벤트 또는 CallingClass 클래스를 구독합니까? 나는 이해가 되길 바란다. – Allen