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

回答編集履歴

3

修正

2020/11/27 06:37

投稿

YAmaGNZ
YAmaGNZ

スコア10674

answer CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  行っていることをものすごく単純化して書くと
4
4
  ```C#
5
+ message = "負け";
6
+ mess = "であなたの";
5
7
  grades += array_match_result.Length.ToString() + "戦中 "
6
8
  + "あなた:" + cnt_win.ToString() + "勝 "
7
9
  + "わたし:" + cnt_lose.ToString() + "勝 "

2

修正

2020/11/27 06:37

投稿

YAmaGNZ
YAmaGNZ

スコア10674

answer CHANGED
@@ -10,8 +10,10 @@
10
10
  MessageBox.Show(array_match_result.Length.ToString() + "戦中 " + cnt_win.ToString() + "勝"
11
11
  + cnt_lose.ToString() + "敗" + cnt_draw.ToString() + "分けであなたが勝ちました。", "勝敗決定");
12
12
 
13
+ this.lblResult.Text = message;
14
+ this.label4.Text = mess;
13
15
  this.WinRate.Text = grades;
14
16
  ```
15
17
  となります。
16
- MessageBox.Showでメッセージボックスを閉じるまで続きが実行されないので、画面のWinRateが更新されません。
18
+ MessageBox.Showでメッセージボックスを閉じるまで続きが実行されないので、画面のラベルが更新されません。
17
19
  なので、更新してからメッセージボックスを出しましょうということです。

1

追記

2020/11/27 06:34

投稿

YAmaGNZ
YAmaGNZ

スコア10674

answer CHANGED
@@ -1,1 +1,17 @@
1
- 画面の更新を行う前にMessageBoxを表示しているので、そこで処理が停止し、画面の文言がまだ更新されていないだけなのではないですか?
1
+ 画面の更新を行う前にMessageBoxを表示しているので、そこで処理が停止し、画面の文言がまだ更新されていないだけなのではないですか?
2
+
3
+ 行っていることをものすごく単純化して書くと
4
+ ```C#
5
+ grades += array_match_result.Length.ToString() + "戦中 "
6
+ + "あなた:" + cnt_win.ToString() + "勝 "
7
+ + "わたし:" + cnt_lose.ToString() + "勝 "
8
+ + "あいこ:" + cnt_draw.ToString();
9
+
10
+ MessageBox.Show(array_match_result.Length.ToString() + "戦中 " + cnt_win.ToString() + "勝"
11
+ + cnt_lose.ToString() + "敗" + cnt_draw.ToString() + "分けであなたが勝ちました。", "勝敗決定");
12
+
13
+ this.WinRate.Text = grades;
14
+ ```
15
+ となります。
16
+ MessageBox.Showでメッセージボックスを閉じるまで続きが実行されないので、画面のWinRateが更新されません。
17
+ なので、更新してからメッセージボックスを出しましょうということです。