• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#で、ある条件でFormが自動で閉じるプログラム)

C#でFormを自動で閉じるプログラム

このQ&Aのポイント
  • C#でFormを自動で閉じるプログラムを作成する方法について詳しく解説します。
  • ボタンを押したら数秒後に自動でFormが閉じるC#のコード例を紹介します。
  • 問題が解かれたら自動でFormが閉じるC#のプログラムを実装する方法について解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.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)
回答No.1

>その文字が表示されたら数秒後に自動でForm2が閉じられるプログラムを書きたいのですがうまくいきません。 フォームにTimerクラスのフィールドを追加して、「正解」の文字列をラベルに設定したらタイマースタート。 タイマーの満了で自分自身でClose()メソッド呼べばいいんじゃないですかね? http://msdn.microsoft.com/ja-jp/library/system.windows.forms.timer%28v=vs.110%29.aspx >などとすると、ボタンを押したら、ラベルには何も表示されずに3秒後に閉じます。 イベントハンドラから抜けるまで3秒掛かります。 で、そのイベントハンドラを抜けた時点で label1.Text="正解です。"; の描画が実行され、その直後に閉じます。 イベントハンドラ内で時間のかかる作業を行ってはいけません。 # と言いつつ、仕事で作ったヤツはしばらく時間かかる処理やってますけどね。 # おかげでプログラムがフリーズしたかのような反応になることも……。

redeyes024
質問者

お礼

ご回答ありがとうございます。後日、実践してみます。

関連するQ&A

専門家に質問してみよう