- ベストアンサー
プログラムの実行時にフォーム上のコントロールを消したい
WinXP、VB.NET 2005で開発しております。 プログラムの実行時に フォーム上のすべてのコントロールを消したいのですが、 全部削除されません。 削除する部分のコードは以下の通りです。 For Each objcontrol As Control In Me.Controls objcontrol.Dispose() objcontrol = Nothing Next デバッグで追っていくと、 いくつか実行した後にループを抜けてしまいます。 すべて消す方法をご存じの方、教えて下さい。 お願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
For Each を使いながら、該当オブジェクトを削除するからでは? コントロールに限らず、VBに限らず、こういうコードは危険です。 For I = Me.Controls.Count - 1 To 0 Step -1 Me.Controls(I).Dispose(); Next このようにしては如何でしょう?
お礼
ありがとうございます。 一発で解決しました。 頂いたアドバイスでなぜ駄目だったかもわかりました。 とても助かりました。