目标:
FormA具有CustomButtonA。
当我单击CustomButtonA时,我希望FormA调用MethodA
尝试失败:
在FormA的设计器中,我添加了:
this.instanceOfButtonA.Click+= new System.EventHandler(this.buttonAPressed);
在FormA上,我还添加了:
private void buttonAPressed(object sender, EventArgs e)
{
MethodA();
}
结果:从未调用过MethodA
“解决方案”
我在CustomButtonA上添加了
public delegate void EventHandler(object sender, System.EventArgs args);
public event EventHandler OnClickEvent = delegate { };
protected override void OnControlAdded(ControlEventArgs e)
{
e.Control.Click += new System.EventHandler(Control_Click);
base.OnControlAdded(e);
}
void Control_Click(object sender, System.EventArgs e)
{
OnClickEvent(this, new System.EventArgs());
}
在FormA的构造函数中,我添加了:
this.instanceOfButtonA.OnClickEvent += (sender, args) => { MethodA(); };
作为一种选择,我想我可以使用一个委托,以便buttonA可以调用MethodA而不用抛出FormA处理的事件
问题:
我可以做些什么来使失败的尝试奏效吗?
我对我的解决方案的工作方式并不满意