C#和#x27;回调&x27;从第二种形式
我正试图从C#中的第二个表单中回调,但是没有成功,有人能帮忙吗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
// 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();
}
我认为这是一个打字错误!