-1
我有一个字符串变量SuppCode,我在Form1中赋值。我想在Form2的Switch语句中使用这个变量。我试过使用public string SuppCode;
,但我仍然在交换机中获得The name 'Switch' does not exist in the current context error
。什么是我需要改变,以允许我使用SuppCode Form2?跨表格使用变量
我有一个字符串变量SuppCode,我在Form1中赋值。我想在Form2的Switch语句中使用这个变量。我试过使用public string SuppCode;
,但我仍然在交换机中获得The name 'Switch' does not exist in the current context error
。什么是我需要改变,以允许我使用SuppCode Form2?跨表格使用变量
是Form1的所有者吗?我的意思是,你使用instanceOfForm2.Show(instanceOfForm1);或者instanceOfForm2.ShowDialog(instanceOfForm1);显示Form2?如果是,你可以这样做:
string s = ((Form1)this.Owner).SuppCode;
从Form2的访问变量
编辑: 您的形式已成立业主,当它被证明使用方法:
Form1 form1 = new Form1();
Form2 form2 = new Form2()
form2.Show(form1);
//or
form2.ShowDialog(form1);
然后form2将Owner属性设置为form1。
您还可以在Form2中创建自己的属性以引用您的表单1。
class Form2
{
public Form1 MyFormRef{get;set;}
public Form2(){/*...*/}
// or:
public Form2(Form1 formref)
{
this.MyFormRef = formref;
}
private string getSuppCode()
{
if(this.MyFormRef!=null)return this.MyFormRef.SuppCode;
else return null;
}
}
使用:
Form1 form1 = new Form1();
Form2 form2 = new Form2();
form2.MyFormRef = form1;
或:
Form1 form1 = new Form1();
Form2 form2 = new Form2(form1);
我只使用frmReport F =新frmReport(); f.Show();显示Form2(名为frmReport)。当我尝试上面的代码时,我得到一个“未设置为对象实例的对象引用”。错误。 – user1936588