2017-02-25 42 views
0

フォーム上のタイマーに問題があります。私はそれをプロパティから有効にして、間隔値5000を設定しました。チックイベントでは、現在のフォームを閉じてform1を開きますが、機能しません。現在のフォームは閉じられ、form1は5秒ごとに1回だけでなく開きます。私は何をすべきか?前もって感謝します!タイマーが停止または無効になった後で停止しない

これはダニのイベントです:

private void timer1_Tick(object sender, EventArgs e) 
{ 
    this.Hide(); 
    Form1 frm = new Form1(); 
    frm.ShowDialog(); 
    timer1.Enabled = false; 
} 
+1

無効にタイマーダイアログを表示する前に。 –

答えて

1

あなたはShowDialogを呼び出す前に、タイマーを無効にする必要があるので、最初の行にtimer1.Enabled = false;を移動:あなたはタイマーを無効にして起動していることを確認します。また、私は2番目のフォームを閉じた後に、メインフォームが閉じますように、あなたがfrm.Closedイベントを追加することを示唆している:これは何をしたいです:

timer1.Enabled = false; 
Hide(); 
Form1 frm = new Form1(); 
frm.Closed += (s, args) => Close(); 
frm.ShowDialog(); 
+0

それは働きます、ありがとう!また、提案のために。 – Elena

+0

@Eleenaようこそ。 –

3

frm.ShowDialog();は、新しいフォームが閉じられるまで、したがって、次の行が実行されませなり、ブロッキング呼び出しです。

private void timer1_Tick(object sender, EventArgs e) 
{ 
    timer1.Enabled = false; 
    this.Hide(); 
    Form1 frm = new Form1(); 
    frm.ShowDialog(); 
} 
+0

それは動作します、ありがとう! – Elena

関連する問題