2011-08-11 160 views
0

我正在開發我的第一個UI C#程序。我希望得到一些幫助。我的第一個表單包含幾個文本框,兩個單選按鈕和一個Go按鈕。如果一個單選按鈕被選中,它會打開一個新的小表單,如果選中了另一個,它會打開一個新的大表單。窗體關閉/顯示 - C#

當用戶點擊進入 - 這是我的代碼 -

 this.WindowState = FormWindowState.Minimized; 
     int.TryParse(tbHrs.Text, out hours); 
     int.TryParse(tbMins.Text, out minutes); 
     int.TryParse(tbSecs.Text, out seconds); 
     int.TryParse(tbWarn1.Text, out warn1); 
     int.TryParse(tbWarn2.Text, out warn2); 


     bool Max = rbMax.Checked; 
     if (Max == true) 
     { 
      if (_Max == null || _Max.IsDisposed) 
      { 
       _Max = new Max(hours, minutes, seconds, warn1, warn2); 
      } 
      _Max.Show(); 


     } 
     else 
     { 
      if (_Min == null || _Min.IsDisposed) 
      { 
       _Min = new Min(hours, minutes, seconds, warn1, warn2); 
      } 
      _Min.Show(); 
     } 

所以當值進入和整個價值傳遞開始構建新的形式,當倒計時的形式減少。在新的表單上,我想讓按鈕暫停,這很好。不過,我也想要一個停止/重置按鈕。所以在停止/重置點擊我想關閉當前窗體,但是我想把第一個窗體從最小化狀態打開 - 我嘗試了下面的註釋行,但它不起作用。有誰知道的方式,我可以顯示第一個用戶輸入表單從最小化狀態時,單擊第二個窗體上的停止關閉,甚至更好,如果它可以重置字段在我的第一個窗體上空白。非常感謝。

private void MinStop_Reset_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
     //ParentForm.Show(); 
    } 

回答

1

在父窗體做:

_min.FormClosed += (s1,e1) => { this.WindowState = FormWindowState.Maximized; } 
+0

)之後,我會把它放置在正確的位置。嗨Tsabo - 我從哪裏得到.sosed和s1,e1參數是什麼?謝謝。 –

+1

你得到.FormClosed on instace (); s1和e1是用於(對象)發件人和(FormClosedEventArgs)e參數的placeholdes – Tsabo

+0

工作 - 很多謝謝你的幫助Tsabo。爲了我的理解什麼是= >爲 - 謝謝。 –

1

添加第二個窗體上的事件(你可以訂閱到現有Form.Closed事件,但你可能要爲你的使用情況更具體的事件)。

public event EventHandler UserStoppedEvent; 

從你的第一個形式訂閱它,做任何你需要

_min.UserStoppedEvent += (s, e) => {this.WindowState = FormWindowState.Maximized;} 
+0

感謝這個彼得 - 只是幾個問題 - 我應該在哪裏放置_Min.UserStoppedEvent + = ()....等在我的第一種形式 - 作爲其構造函數的一部分在這裏'公衆CountDownTimer() '{ InitializeComponent(); }同樣的代碼,它給我一個錯誤 - 代表System.Event.Handler不採取'0'參數? –

+1

哎呀,這就是我沒有檢查它!更正的參數現在可以工作。在你實例化「_Min = new Min(...」。 –