- ベストアンサー
vb2010 Sleepを使うと調子が悪くなる
- vb2010でSleepを使うとPCの調子が悪くなる問題を解決する方法
- Button1を押さずに×を押すと仕事を残して終了してしまう問題を解決する方法
- SleepやApplication.DoEventsの適切な使い方を理解し、問題を回避する方法
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Formを閉じたからといって For~Next処理が自動的に終了するわけではありません。 Formが閉じた後も、予定した回数分の処理を続けようとします。 なので、Formを閉じたときはFor~Next処理が終了するようにする必要があります。 (または、For~Next処理が終了するまではFormを閉じられないようにする) 今の処理では、ExitFlagでFor~Next処理を終了できるので、Formを閉じるイベントでExitFlagを立ててやれば、きれいに終了できます。
その他の回答 (2)
- hirotn
- ベストアンサー率59% (147/246)
>Button1を押さないで とありましたので、フォームのクローズが呼ばれた際に、Button1_Clickと同等の処理を行えばよいと思いました。 そうすると、2つ該当するイベントがありますので、どちらか適切なイベントで実行して下さい。 という回答になります。フラグを更新するだけならばClosingでも良いのかな、と思います。
お礼
Closingに入れて何回か実験していますが大丈夫な様です。 再度回答いただきありがとうございました。
- hirotn
- ベストアンサー率59% (147/246)
×ボタンを押すということなので、延長でフォームを閉じるイベントが呼ばれます。 http://drinking-masa.cocolog-nifty.com/blog/2010/11/vbnet-d4df.html http://dobon.net/vb/dotnet/vb6/closingevent.html FormClosingイベント FormClosedイベント …タイミングは適切なものをご使用ください。
お礼
>延長でフォームを閉じるイベントが呼ばれます ちょっと意味が分かりませんが一度Cloingイベントで受け止めてEndで終わらせるということでしょうか。 Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing e.Cancel = True End End Sub
お礼
詳しい解説で良くわかりました。ありがとうございました。