2013-01-23 31 views
-1

我有一个字符串变量SuppCode,我在Form1中赋值。我想在Form2的Switch语句中使用这个变量。我试过使用public string SuppCode;,但我仍然在交换机中获得The name 'Switch' does not exist in the current context error。什么是我需要改变,以允许我使用SuppCode Form2?跨表格使用变量

回答

1

是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); 
+0

我只使用frmReport F =新frmReport(); f.Show();显示Form2(名为frmReport)。当我尝试上面的代码时,我得到一个“未设置为对象实例的对象引用”。错误。 – user1936588