我有一个windows应用程序,它有3种形式:Form1,2,3。我想从form2
发送一个文本框的文本form1
,然后从form1
相同的文字form3
,即从FORM2
在Visual Studio中使用C#在3个窗口窗体之间传递数据
文本 - >FORM1
- >FORM3
- 表1,具有2个按钮,openform2,openform3。
- 窗体2有一个文本框form2_textbox,&按钮send_to_form1_button
- Form3有一个文本框received_from_form1_textbox
现在,
- 上点击
form1
按钮openform2
,Form2
打开, - 字符串输入到
Form2
的文本框form2_textbox
, - 单击这种形式的按钮时
form2_button
,那么我想Form1
收到此字符串值&并将其存储在一个字符串receivefromform2
, - ,然后显示上的
Form3
form3_textbox
此字符串值。
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
。 那我该怎么办?有没有其他的方式来做到这一点,或者我该如何消除这个错误?
当我在方法中包含f3.Show()
Method_Receive_From_Form2那么就没有错误。但这会使form3
自动加载,而无需点击任何按钮。但我想通过点击form1
上的按钮打开form3
。然后将值显示在文本框中。
@Shekhar_Pro:亲爱的先生,你能解释一下我绑定的事件代码,我不知道什么发生在它?我将它复制到我的代码中,但它给出的语法错误? – sqlchild 2011-02-18 14:36:49
我已经使用Lambda和匿名代理绑定事件..如果您使用.net 2.0(它们不支持),那么你可以做我通常在我的更新中解释过的绑定 – 2011-02-19 03:13:34
@Shekhar_Pro:先生,我的问题还没有已经解决了,请告诉我在哪里把你给出的代码,完全混淆了,我无法实现从Form2发送Form1到Form1然后从Form1发送到form3的简单过程,FORM1是主要的父代形成。 – sqlchild 2011-02-21 12:50:36