2013-04-25 56 views
0

我有視覺工作室2種形式,C#WindowsForms - 從Form1中發送文本到窗體2上的Visual Studio

form1 have textbox1.text 
form2, have textbox2.text and btnSave 

OBS:窗口2開放時,我在另一個按鈕,點擊表格1:

Form new = new form2(); 
      nova.Show(); 

我怎麼能發送text2的內容從form2 form1(textbox1)點擊btnSave? 這個點擊按鈕事件中需要什麼代碼。

感謝

+2

添加一個公共財產form1。 – 2013-04-25 18:00:01

+0

將公共靜態變量添加到Form1,您可以從任何地方訪問它。 – Dilshod 2013-04-25 18:00:16

+0

你在哪裏發送表單2上的文本框數據到表單1?另一個文本框?你試過什麼了?請發佈您的代碼。 – Brian 2013-04-25 18:01:29

回答

0

研究我能夠使其工作,失去了一些小時,但現在一切都很完美,這是代碼爲我工作:

在窗體2上:

public partial class form2 : Form 
    { 
     private string nome; 
     public string passvalue 
     { 
      get { return nome; } 
      set { nome = value; } 
     } 

窗口2,按鈕保存:

private void btnSalvar_Click(object sender, EventArgs e) 
     { 
      passvalue = txtMetragemcubica.Text; 
      this.Hide(); 
     } 

在Form1上(此按鈕打開窗口2):

private void btnMetragemcubica_Click(object sender, EventArgs e) 
     { 
      form2 n = new form2(); 
      n.ShowDialog(); 
      txtMetragem.Text = n.passvalue 
     } 

現在,它的工作是這樣的:在形式1打開,然後我點擊按鈕btnMetragemcubica和form2打開,然後我插入不同的文本框中的值,並在txtMetragemcubica上的結果,當我點擊保存按鈕(btnSalvar)它關閉form2併發送值到form1在txtMetragem文本框中。

在這裏工作完美,希望能幫助別人。 無論如何,感謝所有幫助

1

創建時的形式被保存,可以解僱你的第二個窗體上的事件:

public event Action Saved; 

然後該表單,允許文本框的文本要訪問上創建一個屬性:

public string SomeTextValue //TODO: rename to meaningful name 
    { get{ return textbox2.Text;} } 

然後,你需要當您保存表單關火Saved事件:

if(Saved != null) 
    Saved(); 

然後,當你第一次在Form1創建表單附加一個事件處理該事件:

Form2 child = new Form2(); 
child.Saved +=() => textbox1.Text = child.SomeTextValue; 
child.Show(); 

請注意,如果您還關閉第二表格權當你保存它,那麼你就不需要一個自定義事件,您可以改爲使用FormClosing

+0

謝謝,我會努力。在窗口2本 – 2013-04-25 18:31:59

+0

優雅的解決方案+1 – Brian 2013-04-25 18:33:42

+0

我補充說:公共Action事件保存;我有3個錯誤,然後我點擊保存,並按下「生成類爲已保存」,然後保持2個錯誤:‘錯誤1無效令牌‘事件’在類,結構或接口成員聲明’和‘錯誤2無效令牌‘;’在類,結構或接口成員聲明’,後解決我將繼續按照你的步驟 – 2013-04-25 18:50:45

3

試試這個請: 第一步:創建窗體2類,如下構造:

public Form2(string strTextBox) 
     { 
      InitializeComponent(); 
      label1.Text = strTextBox; 
     } 

第二步:實例窗口2類,如下Form1的按鈕單擊事件處理程序:

private void button1_Click(object sender, EventArgs e) 
     { 
      Form2 obj1 = new Form2(textBox1.Text); 
      obj1.Show(); 
      this.Hide(); 
     } 
+0

這不起作用,form2如何將txt內容發送到form1?應該使用按鈕,但是,它的混淆.. – 2013-04-25 23:44:54

+0

這裏form1發送文本到form2在我的例子。在form2中有一個構造函數。所以當初始化form2發送給構造函數的值爲param.its爲我工作。 textBox1是form1中給定值的文本框。 form1中的button1。在form2中,label1是一個標籤,用於顯示form2中的值。它爲我工作 – 2013-04-26 04:55:46

+0

我一直在尋找這段代碼很多。謝謝。 – UserMat 2016-07-06 20:01:53

相關問題