コード上でForm上に動的に追加したコントロールの扱い への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2017/7/12 19:20:29
> そのFormを閉じるとき、そのコントロールはコード上でDisposeしなくちゃダメですか?
Form 上に貼ったままフォームが閉じられれば、子コントロールも一緒に Dispose されます。
> (例えば、Formを開いたり閉じたりを繰り返すと問題が出る?)
フォームを閉じる前にコントロールを取り除く場合には、Dispsoe が必要です。
Controls に対して Clear メソッドや Remove / RemoveAt メソッドを使う場合は、
Dispose し忘れにご注意ください。
Form 上に貼ったままフォームが閉じられれば、子コントロールも一緒に Dispose されます。
> (例えば、Formを開いたり閉じたりを繰り返すと問題が出る?)
フォームを閉じる前にコントロールを取り除く場合には、Dispsoe が必要です。
Controls に対して Clear メソッドや Remove / RemoveAt メソッドを使う場合は、
Dispose し忘れにご注意ください。
投稿者 バビ男  (社会人)
投稿日時
2017/7/12 17:21:29
こんにちは!
条件に応じてForm上のコントロールの数などを変えたいので、
デザイナを使わず、FormのLoadイベント等のコードでForm上にコントロールを動的に追加する場合、
そのFormを閉じるとき、そのコントロールはコード上でDisposeしなくちゃダメですか?
(例えば、Formを開いたり閉じたりを繰り返すと問題が出る?)
ちなみに、VB2013です。
よろしくお願いします!
条件に応じてForm上のコントロールの数などを変えたいので、
デザイナを使わず、FormのLoadイベント等のコードでForm上にコントロールを動的に追加する場合、
そのFormを閉じるとき、そのコントロールはコード上でDisposeしなくちゃダメですか?
(例えば、Formを開いたり閉じたりを繰り返すと問題が出る?)
ちなみに、VB2013です。
よろしくお願いします!
ちょうど、ボタンクリックでForm上のコントロールの増減を行っている所があり、
コントロールを減らす場合はRemoveしたままでした。
少なくともRemoveしたコントロールは再利用していないので、
RemoveしたコントロールはDisposeするようにします。
勉強になりました!ありがとうございました!