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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
フォームの再読み込み
Visual Basic(VBA)
-
5
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
6
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
7
C# 計算処理中に実行中ウィンドウを表示させたい。
C言語・C++・C#
-
8
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
9
ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
C言語・C++・C#
-
10
C# フォームを閉じてもプログラムが終了しない
C言語・C++・C#
-
11
ボタンクリックイベント 重複防止について
C言語・C++・C#
-
12
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
13
System.IO.Directory.GetFilesの順番
Visual Basic(VBA)
-
14
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
15
メッセージボックスのボタン名変更
Visual Basic(VBA)
-
16
DataGridViewにてセル以外をクリックしたか判別
Visual Basic(VBA)
-
17
C# インスタンスの破棄
その他(プログラミング・Web制作)
-
18
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
19
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
20
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別フォームからdatagridviewの削除
-
C#でテキストボックスをクリッ...
-
C#で、ある条件でFormが自動で...
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
コントロールの書式設定で、“コ...
-
フォントの大きさ
-
フォームでPDFを表示させた...
-
VBAのフォント変更(エクセルか...
-
JTableのヘッダー文字のサイズ変更
-
メッセージボックスを大きくす...
-
メッセージボックスの選択ボタ...
-
3次元空間上の2つの座標から...
-
コンボボックス内の文字サイズ変更
-
vbaから他のアプリを終了
-
ゲームでは結局どっちが良いの?
-
NVIDIAのシェーダーキャッシュ
-
チェックボックスの箱のサイズ...
-
ActiveXコントロールを.NETにイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】別フォームも同時に閉じ...
-
C#で、ある条件でFormが自動で...
-
C# フォームを閉じてもプログラ...
-
C# FlowLayoutPanelのコントロ...
-
OutLookのメール受信通知 (C#)
-
C# 自分自身のコントロールを指...
-
別フォームからdatagridviewの削除
-
C#でテキストボックスをクリッ...
-
form2 から form1に戻ったとき...
-
ASP.NetでJavaScriptからポスト...
-
【C#】サブフォームからメイン...
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
コントロールの書式設定で、“コ...
-
勝手にウィンドウが開いて止ま...
-
検索の画面がでなくなってしま...
-
VBAのフォント変更(エクセルか...
-
エクセルのコントロールツール...
おすすめ情報