【发布时间】:2011-02-21 23:16:02
【问题描述】:
我有一个 Windows 应用程序,它有 3 种形式:Form1、2、3。我想将文本框的文本从form2 发送到form1,然后将相同的文本从form1 发送到form3,也就是说,
来自FORM2的短信-->FORM1-->FORM3
- Form 1,有 2 个按钮,openform2,openform3。
- Form2 有一个文本框 form2_textbox 和一个按钮 send_to_form1_button
- Form3 有一个文本框 received_from_form1_textbox
现在,
- 点击按钮
openform2form1,Form2打开, - 在
Form2的文本框form2_textbox中输入了一个字符串, - 当单击此表单的按钮
form2_button时,我希望Form1接收此字符串值并将其存储在字符串receivefromform2中, - 然后将此字符串值显示到
form3_textbox的Form3。
public partial class Form1 : Form
{
string receivefromForm2a;
public Form1()
{ InitializeComponent(); }
public void Method_Receive_From_Form2(string receivefromForm2)
{
receivefromForm2a = receivefromForm2;
Form3 f3 = new Form3(receivefromForm2a);
}
private void openform3_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();**----this line gives error:No overload for method Form3 takes 0 arguments**
f3.Show();
}
private void OPENFORM2_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
string loginname = form2_textbox.Text;
}
//SENDING VALUE OF TEXTBOX ON FORM2 TO FORM1.
private void send_to_form1_button_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.Method_Receive_From_Form2(form2_textbox.Text);
}
}
public partial class Form3 : Form
{
public Form3(string receive_from_Form1)
{
InitializeComponent();
received_from_form1_textbox.Text = receive_from_Form1;
}
}
发生此错误是因为在form2 中,我在对象创建期间为form1 提供了参数。
所以我该怎么做?有没有其他方法可以做到这一点或如何消除此错误?
当我在方法 Method_Receive_From_Form2 中包含f3.Show() 时,没有错误。但这会使form3 自动加载,无需单击任何按钮。但我希望通过单击form1 上的按钮打开form3。然后在文本框中显示的值。
【问题讨论】: