質問: 1 to 99999 Me.TextBox.Text &= vbCrLf & i.toString() '再描画するにはどうすれれば・・・ Next End Sub ``` 上記コードでは、結果として1~99999の数字が、1行ずつ改行され、表示されますが、 `ContentRendered`イベント発生前は、TextBoxには、何も表示されていない状態(ということにします)で、 `ContentRendered`イベント発生後、1~99999の数字がすべて入力された状態になります。 (ユーザが視認できるのは、何も入力がない状態、あるいは、すべて入力されてしまった状態) 実現したいのは、 何もない状態、 1だけ入力された状態、 1と2が入力された状態、 1と2と3が入力された状態 ・・・ と、1件づつ増えていくのを、視認できるようにしたいです。 需要は多いような気がするのですが、 検索の仕方が良くないのか、検索しても、いまいちピンとくる情報がありません。 (多いのは、dispatcherオブジェクトを使ってどうこう・・・という説明ですが、 dispatcherについて調べても、非同期処理という認識しか持てず、いまいち描画とのつながりが良く分かりません) 方法あるいは、参考になる情報があれば、教えて頂きたいです。
回答: 単純に待機処理を入れてないので一瞬で1から99999までカウントアップしてしまって早すぎて見えないということではないのでしょうか? 下記お試しください。 ``` 'Window3 Class Private Async Sub Window_ContentRendered(sender As Object, e As EventArgs) Handles Me.ContentRendered For i = 1 to 99999 Me.TextBox.Text &= vbCrLf & i.toString() ' 次のカウントアップの前に10ms待機させる Await Task.Delay(10) Next End Sub ```