teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード修正

2021/06/23 08:17

投稿

neconekocat
neconekocat

スコア443

answer CHANGED
@@ -1,8 +1,20 @@
1
- よくわからいですがこういう事をしいと?
1
+ まともにコード書ける環境にので追記。
2
+ やっていることはfanaさんの回答と全く同じで、処理終了後にモーダル表示したフォームを閉じています。
3
+ 表示するフォームに手を加えず、メインフォームだけで完結させる書き方ですね。
4
+
2
5
  ```C#
6
+ private void button1_Click(object sender, EventArgs e)
7
+ {
3
- var form = new Form2();
8
+ using (var form = new Form())
9
+ {
10
+ Task.Run(() => Hoge()).ContinueWith(_ => form.Invoke((MethodInvoker)(() => form.Close())));
11
+ form.ShowDialog();
12
+ }
13
+ }
4
14
 
5
- Task.Run(() => Thread.Sleep(5000)).ContinueWith(_ => form.Invoke((MethodInvoker)(() => form.Close())));
15
+ /// <summary>モーダル表示中にする処理</summary>
6
-
7
- form.ShowDialog();
16
+ private void Hoge()
17
+ {
18
+ System.Threading.Thread.Sleep(5000);
19
+ }
8
20
  ```