我正在尝试从 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();
}
遗憾的是,回调无法正常工作,我是否编码错误?请帮忙...非常感谢!
最佳答案
它不会起作用,因为您在刚刚创建的 Form1
的新实例上调用 CallBack
,该实例与主窗体不是同一实例。
您需要以某种方式引用主表单,例如:
(Application.OpenForms[0] as Form1).CallBack();
假设主窗体 (Form1) 是应用程序的第一个打开的窗口。
关于来自第二种形式的 C# 'callback',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15270151/