2011-03-23 139 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。如果你这样做,你能否提供更多的代码?

相关问题