将按钮事件发送到对象主机类

时间:2011-11-30 04:12:52

标签: c# event-handling

我在ClientForms项目中有一个名为FormMain的窗体。现在,这个(FormMain)表单在Scheduling项目中打开另一个名为FormScheduler的表单。

现在,我想在FormScheduler中触发button_click方法事件时将消息发送回FormMain。

我的解决方案创建了一个循环依赖。还有其他方式,比如使用代表吗?

1 个答案:

答案 0 :(得分:1)

使用活动。

在表单FormScheduer中添加一个按钮和以下代码:

public event EventHandler ButtonClicked;

private void button1_Click(object sender, EventArgs e) {
    if (ButtonClicked != null) {
        ButtonClicked(this, EventArgs.Empty);
    }
}

在FormMain中,实例化并显示FormScheduer表单,如下所示:

var form = new FormScheduer();
// Listen for the ButtonClicked event...
form.ButtonClicked += form__ButtonClicked;
form.Show();

单击FormScheduler上的按钮时,将调用FormMain上的form_ButtonClicked方法:

void form__ButtonClicked(object sender, EventArgs e) {
    Console.WriteLine("clicked");
}