2016-05-12 44 views
0

我在製作一個WindowsForms應用程序。我有2種形式:保持多個窗體WindowsForms c上的數據#

  • 的第一個表單(Form1),有許多領域(Textboxs)應當由用戶填寫,然後點擊一個按鈕(Transfer)。
  • 此按鈕應在新窗體(Form2)中顯示Form1的所有輸入數據。

我不知道如何開始將數據從一種形式移動到另一種形式。有人可以指導我如何去做?

+0

'Form1'是否創建/擁有'Form2',或者兩個表單都是獨立存在的,您是否需要在它們之間進行更新? – MicroVirus

+0

是的,'Form1'創建'Form2',但是第一個數據 –

回答

0

每個文本框都有一個值(Textbox.Text屬性)。您將不得不將這些不同屬性的內容轉移到第二種形式的新控件中。

最簡單的方法是通過第二種形式的自定義Form構造函數。

public Form2(string textBox1Value, string textBox2Value) 
// etc... add as many as you like or use an object that holds all values in properties 
{ 
    InitializeComponent(); // Required by WinForms 

    this.TextBox1.Text = textBox1Value; 
    this.TextBox2.Text = textBox2Value; 
} 

確保您使用名稱匹配您想要的文本框。最後,在Transfer按鈕代碼上創建表單時,請改爲調用此構造函數。

1

如果Form1創建Form2專門顯示數據,那麼您可以使用非默認構造函數在創建窗體時傳遞信息。

首先,讓我們考慮要傳輸的信息的示例,並將其命名爲Form2Info

// This class is an example of the information you want to transfer 
public class Form2Info 
{ 
    public string text1; 
    public int number1; 
} 

然後,修改Form2的構造方法來信息:

public partial class Form2 : Form 
{ 
    private Form2Info info; 

    public Form2(Form2Info information) 
    { 
     InitializeComponent(); 

     info = information; 
     // Do something with this information, such as populate a TextBox or Label on the form. 
    } 
} 

最後,您要從Form1創建一個Form2實例:

// Create the information you want to pass; we fill it with some placeholder data here. 
Form2Info info = new Form2Info(); 
info.text1 = "Hello" 
info.number1 = 5; 
// Now create the form and pass the data 
Form2 form2 = new Form2(info); 
form2.ShowDialog(); // Show modal dialog.