- - PR -
ユーザコントロールの親コンテナの型を取得するには
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-26 17:23
こんにちは。
ユーザコントロールの親コンテナの型を取得したいですが、どんな方法があるんでしょうか? 例えば、ユーザコントロールの配置先はSystem.Windows.Formsかどうかを調べたい場合 | ||||
|
投稿日時: 2005-04-26 18:05
ControlにParentプロパティがあり、親(コンテナ)コントロールのインスタンスを取得できます。
| ||||
|
投稿日時: 2005-04-26 23:10
コミュニティに尋ねるより先に、マニュアルに尋ねましょうよ。
ユーザコントロールと、用意されているコントロールの違いはなんですか?自分(製品のユーザ)が作るか、製品の一部として提供されているか、だけですよね。ということは、製品の一部として提供するために、誰か(つまり、製品の開発者)が、私(製品のユーザ)と同じように作っている、と考えられませんか? そう考えると、“ユーザコントロール”に特化せず、提供されているコントロールでそういうことができないか調べれてみれば、何とかなるかもしれませんよね。 ということで、適当なコントロールのメンバ一覧を見ると、Parentとプロパティがあります。これはSystem.Windows.Forms.Controlクラスに実装されています。ということは、Controlクラスから派生したクラスであれば、このプロパティが使えるということです。さらに、コンテナコントロールに配置するためには、Controls.Addメソッドを使います。このメソッドの引数はControlクラスのオブジェクトということになっています。 そして、ユーザコントロールはControlクラスから派生しろと、書かれていたはず。 クラスの判定?キャストできれば、そのクラス、またはそのクラスから派生したクラスですよね。ということは、「キャスト」や「型変換」、「型の変換」をキーに検索すれば出てきます。 _________________ | ||||
|
投稿日時: 2005-04-27 10:02
Jitta 様
ご返事、ありがとうございます。 >>クラスの判定?キャストできれば、そのクラス、またはそのクラスから派生したクラス>>ですよね。ということは、「キャスト」や「型変換」、「型の変換」をキーに検索すれ>>ば出てきます。 キャストですか?キャストで例外が発生したら、「親コンテナはフォームじゃない」と分かる方法? Jitta 様がおっしゃった方法は上述の例外を発生させる方法でしたら、JAVAをはじめる時に使ったことがありますが、その後ちょっときたないと感じて、あまり使いたくなくなりました。 [ メッセージ編集済み 編集者: comeseesee 編集日時 2005-04-27 10:04 ] | ||||
|
投稿日時: 2005-04-27 10:14
Cast時の例外を見て型を調べる方法以外は、というか型を調べる正統な方法は、Type メンバの各メソッド(プロパティでなく)かと。 それ以上は自分で試してみてはどうでしょう。 [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2005-04-27 10:18 ] (う゛、編集前のを引用されちゃった…) [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2005-04-27 10:27 ] | ||||
|
投稿日時: 2005-04-27 10:15
とりあえず反応する前に調べてみた方が良いのでは… | ||||
|
投稿日時: 2005-04-27 10:19
インスタンスが取得できている場合と、Typeが取得できている場合で方法が違いますよね。 インスタンスが取得できているならもっと簡単です。 Type の場合は上記のメソッド等ですかね。 [ メッセージ編集済み 編集者: なちゃ 編集日時 2005-04-27 10:47 ] | ||||
|
投稿日時: 2005-04-27 10:41
演算子のことを忘れてましたです(言語によって違う)。 で、ここで演算子の名前を書くのもありだけど、勉強のためにもヘルプで調べてもらいましょう(「演算子」というヒントは出しましたし)。 |