将事件从一个表单发送到另一个表单

时间:2014-04-16 07:44:42

标签: c# user-interface

我真的很难解决这个看似简单的问题: 我有一个表单(子表单),带有一个按钮,单击该按钮时应将文本框的焦点设置在另一个表单(父表单)上。

我试图使用如下所示的一些代码:我的问题是这是正确的方法吗? 如果是这样,如何解决此错误消息

  

无法隐式转换类型' System.EventHandler'到'ChildForm.SomeEventHandler

public class ChildForm : Form
{
    public delegate SomeEventHandler(object sender, EventArgs e);
    public event SomeEventHandler SomeEvent;


}

public class ParentForm : Form
{
    ChildForm child = new ChildForm();
    child.SomeEvent += new EventHandler(this.HandleSomeEvent);

    public void HandleSomeEvent(object sender, EventArgs e)
    {
        this.someTextBox.select();
    }
}

1 个答案:

答案 0 :(得分:0)

您需要从

更改作业
child.SomeEvent += new EventHandler(this.HandleSomeEvent);

child.SomeEvent += new ChildForm.SomeEventHandler(this.HandleSomeEvent);

编辑1: 当在子窗体中发生操作时,它看起来非常适合在父窗体中处理事件。虽然它看起来不是线程安全的。

另请查看Form.Activate