C#和#x27;回调&x27;从第二种形式

C#和#x27;回调&x27;从第二种形式,c#,.net,callback,C#,.net,Callback,我正试图从C#中的第二个表单中回调,但是没有成功,有人能帮忙吗 // Form 1 (Main form) public void CallBack() { if (radioBox1.Checked) { RefreshForm("TRUE"); } else if (radioBox2.Checked) { RefreshF

我正试图从C#中的第二个表单中回调,但是没有成功,有人能帮忙吗

    // Form 1 (Main form)
    public void CallBack()
    {
         if (radioBox1.Checked)
         {
              RefreshForm("TRUE");
         }
         else if (radioBox2.Checked)
         {
              RefreshForm("FALSE");
         }
    }

    private void RefreshForm(string Options)
    {
         // Do something here
    }
现在是第二份表格

    // Form 2 (Child Form)
    Form1 form1 = new form1();
    private void timer1_Tick(object sender, EventArgs e)
    {
          form1.CallBack();
    }

遗憾的是,回调功能不正常,是否有任何代码错误?请帮忙。。。非常感谢

CallBack()
方法中写下一个消息框,它将始终显示


在Form1的新实例上,未选中
radioBox1
radioBox2
,因此调用转到
Callback
方法,但未发生任何事情。

它将不起作用,因为您正在对刚刚创建的
Form1
的新实例调用
Callback
,它与主窗体的实例不同

您需要以某种方式引用主窗体,例如:

(Application.OpenForms[0] as Form1).CallBack();

这是假设主窗体(Form1)是应用程序的第一个打开窗口。

正在对
Form1
新实例调用
回调
方法,而不是您需要调用的实例

由于您使用的是MDI接口,因此可以将该方法更新为:

private void timer1_Tick(object sender, EventArgs e)
{
      (this.MdiParent as Form1).CallBack();
}

我认为这是一个打字错误!