我在第一個窗體上有Timer控件(和一個Button)。如何停止父窗體上的計時器(C#)
想法是,當用戶點擊按鈕時,顯示帶有新按鈕的新模式窗口,並詢問他是否想要在點擊模式窗體按鈕時停止計時器。
你能幫我怎麼做到嗎?
我在第一個窗體上有Timer控件(和一個Button)。如何停止父窗體上的計時器(C#)
想法是,當用戶點擊按鈕時,顯示帶有新按鈕的新模式窗口,並詢問他是否想要在點擊模式窗體按鈕時停止計時器。
你能幫我怎麼做到嗎?
您也可以根據答案在問題表單上設置DialogResult並在主對話框中檢查結果。
ConfirmationForm confirmationForm = new ConfirmationForm();
DialogResult dialogResult = confirmationForm.ShowDialog();
if (dialogResult == DialogResult.OK)
{
// Stop timer here
}
,或者使用一個標準的對話框
DialogResult dialogResult = MessageBox.Show("Are you sure you want to stop the timer?", "Stop timer", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
// Stop timer here
}
編輯:改變confirmationForm.Show到confirmationForm.ShowDialog。
名爲bStopTimer
如果用戶按下了第二個形式聲明一個Boolean
財產「是」,設置bStopTimer
到True
否則,False
當您關閉子窗體,檢查childForm.bStopTimer
並根據行動到它。
在模態窗體中聲明一個公共布爾屬性。 從主窗體你用一個循環,直到布爾值爲True
While not MyVal = true
ModalForm.show
End While
使用這種方法,您還可以啓動或從主模式表單停止你的定時器。 你會得到重點:)
問候!
您可以在第二個窗體上添加屬性接收第一形式的計時器:
private Timer timer;
public frmModal(Timer tmrref)
{
this.timer = tmrref;
InitializeComponent();
}
然後,當您顯示模式窗體可以通過定時器:
frmModal frm = new frmModal(this.timer1);
frm.ShowDialog();
和按鈕點擊模式窗體只需停止計時器:
timer.Stop();
Winforms或WPF?一些源代碼也有助於理解這個問題 – alf 2011-12-27 11:25:16