![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
C#で、例えばForm2をForm1から開き、ある問題があってForm2のボタンを押すとForm2のラベルに正解と表示されます。
その文字が表示されたら数秒後に自動でForm2が閉じられるプログラムを書きたいのですがうまくいきません。
現在、こう書いています。3秒後とします。
using System.Threading;は宣言しています。
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if(label1.Text=="正解です。")
{
Thread.Sleep(3000);
e.Cancel= false;
}
こうするといつまでも閉じてくれません。
ボタンクリックプログラムに、if文で、~ならば正解です、~ならば間違いです、などとふり分けている中、正解のところに
label1.Text="正解です。";
Thread.Sleep(3000);
this.Close();
などとすると、ボタンを押したら、ラベルには何も表示されずに3秒後に閉じます。
どうすればいいでしょうか?
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 = "間違いです。";
}
}
No.1
- 回答日時:
>その文字が表示されたら数秒後に自動でForm2が閉じられるプログラムを書きたいのですがうまくいきません。
フォームにTimerクラスのフィールドを追加して、「正解」の文字列をラベルに設定したらタイマースタート。
タイマーの満了で自分自身でClose()メソッド呼べばいいんじゃないですかね?
http://msdn.microsoft.com/ja-jp/library/system.w …
>などとすると、ボタンを押したら、ラベルには何も表示されずに3秒後に閉じます。
イベントハンドラから抜けるまで3秒掛かります。
で、そのイベントハンドラを抜けた時点で
label1.Text="正解です。";
の描画が実行され、その直後に閉じます。
イベントハンドラ内で時間のかかる作業を行ってはいけません。
# と言いつつ、仕事で作ったヤツはしばらく時間かかる処理やってますけどね。
# おかげでプログラムがフリーズしたかのような反応になることも……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
CloseとDisposeの違い
Visual Basic(VBA)
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
-
4
フォームの再読み込み
Visual Basic(VBA)
-
5
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
6
ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
C言語・C++・C#
-
7
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
8
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
9
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
10
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
11
C# 配列の変数宣言について。
C言語・C++・C#
-
12
C# インスタンスの破棄
その他(プログラミング・Web制作)
-
13
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
14
Labelコントロールに数字を代入する
C言語・C++・C#
-
15
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
16
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
17
C# フォームを閉じてもプログラムが終了しない
C言語・C++・C#
-
18
C# TEXTが空白であるLABELは何処に???
C言語・C++・C#
-
19
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
20
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#】別フォームも同時に閉じ...
-
C#で、ある条件でFormが自動で...
-
別フォームからdatagridviewの削除
-
C# FlowLayoutPanelのコントロ...
-
form2 から form1に戻ったとき...
-
C# 自分自身のコントロールを指...
-
【C#】サブフォームからメイン...
-
エクセルで作った新しいウイン...
-
グラフの交点の求め方(Excel)
-
「アイテムは収集されました」...
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
検索の画面がでなくなってしま...
-
VBAのフォント変更(エクセルか...
-
vbaから他のアプリを終了
-
3次元空間上の2つの座標から...
-
マインクラフト(pc版)で座標...
-
コントロールの書式設定で、“コ...
-
作成したウインドウのサイズを...
-
エクセルのコントロールツール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】別フォームも同時に閉じ...
-
C#で、ある条件でFormが自動で...
-
C# フォームを閉じてもプログラ...
-
【C#】サブフォームからメイン...
-
C# 自分自身のコントロールを指...
-
C# FlowLayoutPanelのコントロ...
-
別フォームからdatagridviewの削除
-
C#でテキストボックスをクリッ...
-
ASP.NetでJavaScriptからポスト...
-
OutLookのメール受信通知 (C#)
-
エクセルで作った新しいウイン...
-
グラフの交点の求め方(Excel)
-
「アイテムは収集されました」...
-
コントロールの書式設定で、“コ...
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
エクセルのコントロールツール...
-
マインクラフト(pc版)で座標...
-
PCで「使用可能な場合はグラフ...
-
vbaから他のアプリを終了
おすすめ情報