2013-01-23 52 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