2011-03-23 138 views
0

我正在嘗試將單個文本框的值載入另一個窗體上的另一個文本框。如何將文本值傳遞到另一個表單上的文本框?

在形式1我有以下代碼:

private SecondForm secondForm; 
public void SecondFormTextBox() 
{ 
    uname.Text = secondForm.uname.Text; 
} 

在形式2 I有以下代碼。

public TextBox uname 
{ 
    get 
    { 
     return uname; 
    } 
} 

我收到以下錯誤,希望您可以幫助!!

一個對象引用需要 非靜態字段,方法或 屬性 'WindowsFormsApplication1.AdministratorHome.uname.get'

歧義之間 'WindowsFormsApplication1.AdministratorHome.uname' 和 'WindowsFormsApplication1.AdministratorHome.uname'

+1

多次重複... – 2011-03-23 15:31:09

+0

可能重複的[C#初學者幫助,我如何將值傳遞給父窗體?](http://stackoverflow.com/questions/280579/c-beginner -help-how-do-i-pass-a-value-from-a-child-back-to-the-parent-form) – 2011-03-23 15:32:14

+0

在uname調用中(這是一個屬性方法),你返回相同屬性的值,有點遞歸,所以它不會編譯。 – 2011-03-23 15:32:30

回答

4

讓我們做一個檢查,將按鈕上的form1上的textBox的值傳遞給form2上的文本框。 代碼:

//form1: 
Form2 form2; 

private void button1_Click() 
{ 
    if(form2 == null) 
    { 
     form2 = new Form2(); 
     form2.Show(); 
    } 
    form2.PassToForm2(textBox1.Text); 
} 

//form2: 
private void PassToForm2(string msg) 
{ 
    textBox1.Text = msg; 
} 

希望它能幫助, 米蒂亞

1

在上面的代碼片斷中,屬性get引用自身;這是一個壞主意(tm)。如果你想要得到的文本值,你就擁有某種屬性,像這樣:

public string TextBoxText 
{ 
    get { return myTextBox.Text; } // myTextBox is the symbol for your text box 
} 

那麼其他形式可以簡單地訪問通過屬性的文本。接下來,在您的第一個代碼片段中,您沒有爲第二個表單變量分配一個實例;它是空的。

0

首先TextBox uname沒有setter - 或者至少你沒有粘貼它。

二,你是否在Form1中設置了secondForm屬性爲Form2的實例(例如在構造函數中)?

0

從您提供的代碼,它看起來並不像你正在創建一個實例的secondForm。如果你這樣做,你能否提供更多的代碼?

相關問題