Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

コード上でForm上に動的に追加したコントロールの扱い 解決済み

タグの編集...

投稿者 バビ男   (社会人)   投稿日時 2017/7/12 17:21:29
こんにちは!
条件に応じてForm上のコントロールの数などを変えたいので、
デザイナを使わず、FormのLoadイベント等のコードでForm上にコントロールを動的に追加する場合、
そのFormを閉じるとき、そのコントロールはコード上でDisposeしなくちゃダメですか?
(例えば、Formを開いたり閉じたりを繰り返すと問題が出る?)
ちなみに、VB2013です。
よろしくお願いします!

投稿者 魔界の仮面弁士   (社会人)   投稿日時 2017/7/12 19:20:29
> そのFormを閉じるとき、そのコントロールはコード上でDisposeしなくちゃダメですか?

Form 上に貼ったままフォームが閉じられれば、子コントロールも一緒に Dispose されます。

> (例えば、Formを開いたり閉じたりを繰り返すと問題が出る?)

フォームを閉じる前にコントロールを取り除く場合には、Dispsoe が必要です。
Controls に対して Clear メソッドや Remove / RemoveAt メソッドを使う場合は、
Dispose し忘れにご注意ください。

投稿者 バビ男   (社会人)   投稿日時 2017/7/13 09:46:57
魔界の仮面弁士さま、ありがとうございます!
ちょうど、ボタンクリックでForm上のコントロールの増減を行っている所があり、
コントロールを減らす場合はRemoveしたままでした。
少なくともRemoveしたコントロールは再利用していないので、
RemoveしたコントロールはDisposeするようにします。
勉強になりました!ありがとうございました!