none
コンポーネントの取得 RRS feed

  • 質問

  • ErrorProviderやTimer等のコンポーネントをFormに貼り付けた場合の話なんですが、

    このErrorProvierやTimerコンポーネントをFormのプロパティやメソッドから取得って

    できないのでしょうか?

    例えば、コントロールならば、Form.Controlsプロパティから取得できる様に。

     

    Formのprivate変数「components(components.Components)」から取得できそう

    なのは分かったのですが、如何せんprivateなので、公開されているプロパティ、メソッド

    から取得できないかと。

     

    ご教授の程、宜しくお願い致します。

     

    環境:
    Windows Vista Ultimate
    Visual Studio 2005 Professional Edition SP1
    .NET Framework 2.0

     

    2008年4月16日 8:48

回答

  •  @ぶるーのさんこんばんは。

     以下のページにリフレクションを使った例が載っていました。

     

     http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43736&forum=7&start=8

    2008年4月16日 10:51
  •  @ぶるーの さんからの引用

    Formのprivate変数「components(components.Components)」から取得できそう

    なのは分かったのですが、如何せんprivateなので、公開されているプロパティ、メソッド

    から取得できないかと。

    自分で作ったForm派生クラスであれば、componentsを返すプロパティ、メソッドを実装すれば良いのでは?

     

    他の人が作ったクラスであるとか、Formクラスそのものだと無理ですが。

     

    リフレクションであれば、自作であろうと他作であろうと、privateであろうとpublicであろうと、フィールドであろうとなんだろうと取得できます。

    しかし、多用はお薦めしません。(名前の変更のリファクタが効かない、難読化の障害になる、アクセスレベルの意味がない)

    2008年4月16日 14:07
    モデレータ

すべての返信

  •  @ぶるーのさんこんばんは。

     以下のページにリフレクションを使った例が載っていました。

     

     http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43736&forum=7&start=8

    2008年4月16日 10:51
  •  @ぶるーの さんからの引用

    Formのprivate変数「components(components.Components)」から取得できそう

    なのは分かったのですが、如何せんprivateなので、公開されているプロパティ、メソッド

    から取得できないかと。

    自分で作ったForm派生クラスであれば、componentsを返すプロパティ、メソッドを実装すれば良いのでは?

     

    他の人が作ったクラスであるとか、Formクラスそのものだと無理ですが。

     

    リフレクションであれば、自作であろうと他作であろうと、privateであろうとpublicであろうと、フィールドであろうとなんだろうと取得できます。

    しかし、多用はお薦めしません。(名前の変更のリファクタが効かない、難読化の障害になる、アクセスレベルの意味がない)

    2008年4月16日 14:07
    モデレータ
  • 三輪の牛さん、Azuleanさん、回答ありがとうございます。

     

    今回は、リフレクションを使って取得する方式を取りたいと思います。

     

    ありがとうございました。

     

    2008年4月21日 8:13