2011-10-17 94 views
3

我在我的項目中創建了一個可以從主窗體獲取數據的輔助窗體,並且當點擊一個按鈕時應該傳遞給主窗體。
這裏是代碼:在WinForms窗體之間傳遞數據

Add.cs:

 private void button1_Click(object sender, EventArgs e) 
     { 
      main ma = new main(); 

       ma.optionType = "add"; 
       ma.optionName = txtName.Text; 
       ma.optionURL = txtURL.Text; 
       ma.optionInterval = "12"; 
       //What should I pass here? 


      this.Close(); 
     } 

main.cs:

private string opt;// create a property 
     public string optionType 
     { 
      get 
      { 
       return opt; 
      } 
      set 
      { 
       opt = value; 
      } 
     } 
     private string opt2;// create a property 
     public string optionName 
     { 
      get 
      { 
       return opt2; 
      } 
      set 
      { 
       opt2 = value; 
      } 
     } 
     private string opt3;// create a property 
     public string optionURL 
     { 
      get 
      { 
       return opt3; 
      } 
      set 
      { 
       opt3 = value; 
      } 
     } 
     private string opt4;// create a property 
     public string optionInterval 
     { 
      get 
      { 
       return opt4; 
      } 
      set 
      { 
       opt4 = value; 
      } 
     } 

我的問題是,我不知道什麼時候要儘量在按鈕1(在add.cs中)被點擊後獲取來自add.cs的數據。我應該檢查數據是否來自什麼事件?

+0

我你的回答是自己隨意張貼的答案,它可以幫助別人。 –

回答

0

我只是把它改成這樣:
add.cs:

public string optionType { get; set; } 
public string optionName { get; set; } 
public string optionURL { get; set; } 
public string optionInterval { get; set; } 
public int yCoord { get; set; } 
0

如果您在關閉子窗體之前需要了解更改的值,則自定義事件可以讓您優雅地通知父窗體。

下面是在C#中的委託和事件有很大的教程

http://www.akadia.com/services/dotnet_delegates_and_events.html

一旦子窗體被實例化,父窗體將註冊到從孩子接收一個或多個自定義事件(如需要)。

另一種方法是將對父表單的引用傳遞給子表單,以便子級可以調用父級的函數或屬性來通知有關更改。但是,這種方法在兩種形式之間產生了緊密的聯繫,因此不鼓勵。

相關問題