DOBON.NET DOBON.NETプログラミング掲示板過去ログ

親子関係にある部品の同時削除について

環境/言語:[C#(VS.NET2003)]
分類:[.NET]

例えばデザイナでDataSet1を追加し、
プロパティボックスでTablesを選んでコレクションエディタでテーブル追加をすると
DataTable1、2、3と追加できます。
その後DataSet1をデザイナで削除すると一緒にDataTable1、2、3も一緒に消えてくれます。

自作の、コレクション系のフィールドを持つコンポーネントにこのような挙動をさせるには、
何かコードやアトリビュート指定が必要なのかなとは思うのですが、
何を追加してよいかわかりません。
どこかに良い資料はないでしょうか。
■No18907に返信(こど。さんの記事)
> 例えばデザイナでDataSet1を追加し、
> プロパティボックスでTablesを選んでコレクションエディタでテーブル追加をすると
> DataTable1、2、3と追加できます。
> その後DataSet1をデザイナで削除すると一緒にDataTable1、2、3も一緒に消えてくれます。
>
> 自作の、コレクション系のフィールドを持つコンポーネントにこのような挙動をさせるには、
> 何かコードやアトリビュート指定が必要なのかなとは思うのですが、
> 何を追加してよいかわかりません。
> どこかに良い資料はないでしょうか。


とりあえず、資料というのであれば、
 http://search.microsoft.com/results.aspx?mkt=ja-JP&setlang=ja-JP&q=DataSet+DataTable
で探してみて下さい。本家のMicrosoft社に情報が沢山あります。
ぺがらぼさん、さっそく返信ありがとうございます。
内容なのですが、DataSetやDataTableについてのことを知りたいわけではありません。
説明が下手で済みません。
自作のクラスで、同じように連動して消えてくれるようにしたいのです。
構成自体は
●MyTestCollectionComponentクラス    デザイナで使用するためのコンポーネントクラス
    コレクションを保持するItems(MyTestCollection型)は
    [Category("MyTestCollection")]
    [Description("MyTestCollection の説明")]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public MyTestCollection Items 
    { 
        get 
        { 
            return item; 
        }
        set
        { 
            item = value;
        }
    }
    とだけしています。
    
●MyTestCollectionクラス        要素を格納するコレクションクラス(ArrayList)
●MyTestElementクラス            要素のクラス
のようにしています。

デザイナでMyTestCollectionComponent1を配置して、コレクションエディタで要素を追加後、
MyTestCollectionComponent1を削除
→追加された要素のコードも削除
(
 具体的には、
 Friend WithEvents MyTestElement1 As Test.MyTestElement
 とそのプロパティ設定を削除。
)
という挙動をさせたいのですが、MyTestCollectionComponentのクラスに何かそのための
記述が必要そうなのですがわかりません。
今はMyTestCollectionComponent1を削除してもMyTestElement1、MyTestElement2、がそのまま残ります。

DOBON.NET | プログラミング道 | プログラミング掲示板