- PR -

デザイナのないクラス(WindowsFormでない)でのコントロールの扱い

投稿者投稿内容
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-04-09 18:52
テッテさんご返答ありがとうございます。

引用:

コードで1つずつ追加するよりは、UserControl などにまとめたほうがいいような気がします。
15個も作るのは面倒かも知れませんが、デザイナで修正できる方が、
あとから配置を少し変えたいといったときに、柔軟に対応できます。



そうですね。
後戻りになるより、もう少し検討してみたいと思います。
サンプル、参考になります。ありがとうございます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-04-09 21:24
すっかり遅くなりましたが。

DialogP クラスの FormClosing イベントで、Parts.PartsText を DialogP のインスタンスから外してやればいいのですよ。そうすれば using ブロックで破棄されなくなります。
Me.Panel.Controls.Add(Parts.PartsText) で、Me の管轄下に置くから Me が破棄されるときに一緒に破棄されるので、Me が破棄される直前に Me の管轄から外せば、一緒に破棄されることはなくなります。

ただし。
本当に要らなくなったときは、きちんと Dispose してあげてください。
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-04-10 09:44
引用:

Jittaさんの書き込み (2008-04-09 21:24) より:
DialogP クラスの FormClosing イベントで、Parts.PartsText を DialogP のインスタンスから外してやればいいのですよ。そうすれば using ブロックで破棄されなくなります。
Me.Panel.Controls.Add(Parts.PartsText) で、Me の管轄下に置くから Me が破棄されるときに一緒に破棄されるので、Me が破棄される直前に Me の管轄から外せば、一緒に破棄されることはなくなります。



なるほどーー!
そういう手段もあるのですね。
勉強になります。
実はJittaさんの投稿日時頃には作り変えてしまいました。
またDialogPクラスはOption Strict Offにして遅延バインディングとかしてましたので、
それも気持ち悪かったので結局は作り直すべきだったのかなと思っております。

ちなみに、この場合管轄から外すとはMe.Panel.Controls.Remove() というわけではないのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)