- ベストアンサー
C#でFormを自動で閉じるプログラム
- C#でFormを自動で閉じるプログラムを作成する方法について詳しく解説します。
- ボタンを押したら数秒後に自動でFormが閉じるC#のコード例を紹介します。
- 問題が解かれたら自動でFormが閉じるC#のプログラムを実装する方法について解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
というワケで簡単に。 # 手動で閉じた場合だとか、タイマーのキャンセルしてないとか…まあ、いろいろありますけど。 全角スペースでインデントしていますので、コピペする際にはご注意を。 public partial class Form1 : Form { private Timer CloseTimer; public Form1() { InitializeComponent(); CloseTimer = new Timer(); CloseTimer.Stop(); CloseTimer.Interval = 3000; CloseTimer.Tick += new EventHandler(CloseTimer_Tick); } void CloseTimer_Tick(object sender, EventArgs e) { this.Close(); } private void button1_Click(object sender, EventArgs e) { label1.Text = "正解です。"; CloseTimer.Start(); } private void button2_Click(object sender, EventArgs e) { label1.Text = "間違いです。"; } }
その他の回答 (1)
- Wr5
- ベストアンサー率53% (2173/4061)
>その文字が表示されたら数秒後に自動でForm2が閉じられるプログラムを書きたいのですがうまくいきません。 フォームにTimerクラスのフィールドを追加して、「正解」の文字列をラベルに設定したらタイマースタート。 タイマーの満了で自分自身でClose()メソッド呼べばいいんじゃないですかね? http://msdn.microsoft.com/ja-jp/library/system.windows.forms.timer%28v=vs.110%29.aspx >などとすると、ボタンを押したら、ラベルには何も表示されずに3秒後に閉じます。 イベントハンドラから抜けるまで3秒掛かります。 で、そのイベントハンドラを抜けた時点で label1.Text="正解です。"; の描画が実行され、その直後に閉じます。 イベントハンドラ内で時間のかかる作業を行ってはいけません。 # と言いつつ、仕事で作ったヤツはしばらく時間かかる処理やってますけどね。 # おかげでプログラムがフリーズしたかのような反応になることも……。
お礼
ご回答ありがとうございます。後日、実践してみます。