从控件中的控件调用另一个类中的方法?

时间:2014-08-12 15:21:34

标签: c# winforms mvp

我创建了一个自定义控件,由一堆文本框,一个按钮和单选按钮组成。

然后我有一个“父”控件,它只放置了这个1个自定义控件,在后面的代码中我引用了这个控件的Presenter。

演示者处理实际的搜索代码(按下一个按钮时)。如何在子控件上设置按钮单击事件以从演示者调用Search方法?

所以我有以下内容:

CtlSearchDetails
ViewSearchScreen
PresenterSearchScreen

按钮点击事件在CtlSearchDetails上,需要在PresenterSearchScreen上调用该方法。我无法弄清楚如何在ViewSearchScreen的控件实现中揭示这种方法。

1 个答案:

答案 0 :(得分:1)

在自定义子控件中,您希望公开按钮单击的事件:

public event Action OnButtonClicked;

然后挂钩设计师点击的按钮事件

private void btn_myButton_Clicked(object sender, EventArgs e)
{
  if (OnButtonClicked != null)
    OnButtonClicked();
}

然后在父容器中,您希望从子控件

处理此事件
this.myChildControl.OnButtonClicked += new Action(onChildButtonClicked);

private void onChildButtonClicked()
{
  // Do your search here
}