- - PR -
子コンポーネントが削除されない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-10 19:11
System.Windows.Forms.Panel コントロールを継承して独自のコントロール(ParentPanel)を作成しています。
このコントロールは複数個の子コンポーネント(ChildComponent)をコレクション(ChildComponentCollection)として保持しています。 下記のようなコードで、ParentPanelのChildComponentCollectionに、VS2005のデザイナ画面よりChildComponentが追加されるようになりました。(VS2005の自動生成コードにもコードが記述される) 質問したいことは、デザイナ画面に貼り付けたParentPanelをデザイナ画面で削除した場合に、ChildComponentCollectionに追加されたChildComponentを同時に削除する方法を知りたいんです。 下記のコードではParentPanelを生成するコードは削除されるのですが、ChildComponentに関するコードは削除されずにごみのように残ってしまいます。 現在、ChildComponentはComponentクラスを継承して作成していますが、これを例えばPanelクラスより継承して作成すると、ParentPanelが削除されると同時にChildComponentも削除されるようになります。 どうやらデザイナが追加されたComponentを親コントロールの子コンポーネントとして認識していないのかなと?考えています。どうやったら認識させることができるのでしょうか?
| ||||
|
投稿日時: 2006-11-11 02:11
解決しました。
IDesignerHost.DestroyComponent(IComponent)メソッドで子コンポーネント(ChildComponent)を破棄することにより、デザイナから削除されました。 以下に修正したコードと参考にしたサイトを示します。
参考にしたサイト 方法 : デザイン時サービスにアクセスする http://msdn2.microsoft.com/ja-jp/library/ms171822(VS.80).aspx [ メッセージ編集済み 編集者: sou 編集日時 2006-11-11 02:13 ] |
1