2013-02-22 22 views
0

我對C#語言非常陌生,因此請讓我輕鬆一下。我想問的很簡單,但是新的,我不知道該怎麼做。從一個表單中的文本框中獲取文本並將其插入到其他表單的文本框中

我有2種形式:Form1和Form2。 Form1是「默認」的一個,是您在打開應用程序時所擁有的。我有第二種形式和兩個按鈕(確定和取消)2文本框。在第一種形式中,我有一個按鈕,當你點擊它和一個文本框時,它會打開第二個窗體。我嘗試從form 2中的2個文本框中獲取文本,並將其放在form1的文本框中,但我沒有設法執行此操作。我想要在第二個窗體中單擊確定時,窗體2中的2個文本框中的文本將放入Form1的文本框中,當我單擊取消時,只需簡單地關閉窗體2即可。你可以幫我嗎?

+4

然而類似於例如另一個問題http://stackoverflow.com/questions/1806795/how-to-change-text-in-a-textbox-on-another-form-in-visual-c?rq=1 – 2013-02-22 15:57:24

回答

1

當您按下按鈕時,您可以在由Form1設置的Form2中創建一個公共屬性。

public string TextValueFromForm1 { get; set; } 

在Form Load事件上,您可以將文本框的值設置爲該屬性的值。表格

例2

public class Form2 : Form 
{ 
    private TextBox textBox1; 
    private TextBox textBox2; 

    public string TextValue1 { get; set; } 
    public string TextValue2 { get; set; } 

    public Form2() 
    { 
     this.Load += new EventHandler((object sender, EventArgs e) => 
     { 
      textBox1.Text = TextValue1; 
      textBox2.Text = TextValue2; 
     }); 
    } 
} 
+0

感謝您的答案!無論如何,我設法解決它;我不知道我是否問得對,但這是我做的:我在'public partial class Form2'中創建了一個公共字符串,它保留了這兩個文本框中的文本,然後我可以從Form1中訪問它。我想我也必須說,類Form1和Form2繼承了Form類的所有內容。 – Michel 2013-02-23 19:31:19

0

如果我明白你的問題:
- 窗體2有2個文本框(textBox1textBox2)和2個按鈕(btnOKbtnCancel
- 如果按下btnOK - 協調值textBox1textBox2並將它們傳遞給Form1
- 如果btnCancel按下 - 不傳遞任何數據

我的回答簡述:
它可以與事件處理程序可以輕鬆實現,只是掛鉤到OnFormClosing事件,並從Form2

預定義屬性讀取數據一些代碼來說明我的回答是低於

Form1.cs的

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Form2 frm2 = new Form2(); 
      frm2.Show(); 
      frm2.FormClosing += new FormClosingEventHandler(frm2_FormClosing); 
     } 

     void frm2_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      if ((sender as Form2).textData != null) 
       textBox1.Text = (sender as Form2).textData; 
     } 
    } 

Form2.cs

public partial class Form2 : Form 
    { 
     public string textData; 
     public Form2() 
     { 
      InitializeComponent(); 
     } 

     private void btnOK_Click(object sender, EventArgs e) 
     { 
      textData = textBox1.Text + " " + textBox2.Text; 
      this.Close(); 
     } 

     private void btnCancel_Click(object sender, EventArgs e) 
     { 
      this.Close(); 
     } 
    } 
+0

感謝您的回答!無論如何,我設法解決它;我不知道我是否問得對,但這是我做的:我在'public partial class Form2'中創建了一個公共字符串,它保留了這兩個文本框中的文本,然後我可以從Form1中訪問它。我想我也必須說,類Form1和Form2繼承了Form類的所有內容。 – Michel 2013-02-23 19:31:53

相關問題