我试图将单个文本框的值传递到另一个表单上的另一个文本框中。
在表格1中,我有以下代码:
private SecondForm secondForm;
public void SecondFormTextBox()
{
uname.Text = secondForm.uname.Text;
}
在表格2中,我有以下代码。
public TextBox uname
{
get
{
return uname;
}
}
我收到以下错误,希望你能帮忙!!
需要对象引用 非静态字段,方法或 属性 'WindowsFormsApplication1.AdministratorHome.uname.get'
之间的歧义 'WindowsFormsApplication1.AdministratorHome.uname' 和 'WindowsFormsApplication1.AdministratorHome.uname'
答案 0 :(得分:4)
让我们举一个例子,将按钮按下的form1上的textBox中的值传递给表单2上的textBox。 代码:
//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 :(得分:1)
在上面的代码片段中,属性get引用自身;这是一个坏主意(tm)。如果你想获得文本值,你会得到某种类似的属性:
public string TextBoxText
{
get { return myTextBox.Text; } // myTextBox is the symbol for your text box
}
然后另一个表单可以通过属性简单地访问该文本。接下来,在您的第一个代码段中,您尚未为第二个表单变量分配实例;它是空的。
答案 2 :(得分:0)
首先TextBox uname
没有setter - 或者至少你还没有粘贴它。
其次,您是否将secondForm
中的Form1
属性设置为Form2
的实例(例如在构造函数中)?
答案 3 :(得分:0)
从您提供的代码中,您看起来不像是在为secondForm创建实例。如果您这样做,请提供更多代码。