none
ControlのTagを増やす方法 RRS feed

  • 質問

  • Controlに有るTagですが、何で一つしか無いのでしょうか?

    何でそう思ったかと言うと、
    コンボの元データのテーブル番号を記憶させたり、テキスト
    ボックスのSJIS換算長を記憶させたり、その部品で行うべき
    チェックの種類を記憶させたり、他の部品との連携に関する
    情報を記憶させたり、いろいろ記憶させたい事が有るから
    です。

    もちろん継承を使えばいいでしょうし、カスタムデザイナを
    使えば継承を使わなくてもいいかも知れません(?)が、
    もっと簡単な方法は無いでしょうか?

    アトリビュートはソース作成時のもので、デザインタイムに
    はどうにもならないでしょうし、
    いっその事、「以下のプロシージャは、Windowsフォーム
    デザイナで必要です。」以下のソースで、(Objectである)
    Tagにnew Arrayを書き込んでしまおうかとも思ったりも
    するのですが、「コード エディタを使って変更」するな
    と言っていますので、まずげです。

    どうなのでしょうか?

    2006年8月3日 13:18

回答

  • kuwadgi さん、こんにちは。

     kuwadgi さんからの引用
    Controlに有るTagですが、何で一つしか無いのでしょうか?

    すべての型の祖である、System.Object だからです。
    それで十分だと思いますが...

    ちなみに、私は Tag プロパティを使いません。
    専用のプロパティを追加します。

    もちろん継承を使えばいいでしょうし、カスタムデザイナを
    使えば継承を使わなくてもいいかも知れません(?)が、
    もっと簡単な方法は無いでしょうか?

    カスタム コントロールが後々を考えると、もっとも簡単な方法だと思います。

    「コード エディタを使って変更」するなと言っていますので、まずげです。

    でしたら、コレクションに対応したプロパティを自作した方が良いでしょう。
    デザイナ (コレクション エディタ) から Item を追加することができます。

    2006年8月3日 13:31