我有一個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