C# 如何在一个窗体内执行另外一个窗口的一个控件的事件

问题具体描述是:在Form1里面点击一个按钮,可以执行另外一个Form2里一个按钮对应的事件。像一个登陆界面,一个测试网络的界面,我要点登陆界面的登陆键,可以直接开启测试网络界面一个测试键对应的事件。
我实验过,如果把测试网络界面的测试键对应的事件设法移植到登陆键,很容易造成代码的冗杂,很难看懂。鄙人学识浅薄,还望提点,是否有优化的方案去解决这个问题。

这个可以使用 委托 解决。

用委托, 自定义事件
http://www.cnblogs.com/BLoodMaster/archive/2010/07/06/1771926.html

我研究下,这个可以有

在A窗体定义一个public void fun() 方法,在它的click事件中执行此fun()方法。 在B窗体中就可以用A.fun(),实现在B窗体中执行A窗体的事件

如果Form1是父窗体,Form2是在Form1中new出来的,那么把Form2的那个方法直接公开,Form1就可以调用了
如果Form2是父窗体,Form1是在Form2中new出来的,那么就需要用委托:
在Form1中定义委托,在Form1中调用委托,在Form2中订阅委托,并实现。
如果Form1和Form2没有父子关系,都是被另外一个窗体new出来的,那么就意味着只是想去掉重复代码,只要新建一个类,把这段代码放入其中,然后Form1和Form2都调用这个类就可以了。

用委托可以解决,或者是用事件都可以

若是要在Form2中更改Form1中空间的属性(或调用方法),可以用以下操作:
Form1.cs :

namespace 项目名称
{
    public partial class Form1 : Form
    {
        private Form2 form2;
        public Form1()
        {
            InitializeComponent();
            form2 = new Form2(this);
        }
        //执行其他操作
    }
}

Form2.cs :

namespace 项目名称
{
    public partial class Form2 : Form
    {
        private Form1 form1;
        public Form2(Form1 form1)
        {
            InitializeComponent();
            this.form1 = form1;
        }
        //执行其他操作
    }
}

以上代码我试过了,是有效的
希望对大家有效!!!