- PR -

ユーザコントロールの親コンテナの型を取得するには

投稿者投稿内容
comeseesee
常連さん
会議室デビュー日: 2004/11/24
投稿数: 36
投稿日時: 2005-04-26 17:23
こんにちは。
ユーザコントロールの親コンテナの型を取得したいですが、どんな方法があるんでしょうか?
例えば、ユーザコントロールの配置先はSystem.Windows.Formsかどうかを調べたい場合
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-04-26 18:05
ControlにParentプロパティがあり、親(コンテナ)コントロールのインスタンスを取得できます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-04-26 23:10
 コミュニティに尋ねるより先に、マニュアルに尋ねましょうよ。

 ユーザコントロールと、用意されているコントロールの違いはなんですか?自分(製品のユーザ)が作るか、製品の一部として提供されているか、だけですよね。ということは、製品の一部として提供するために、誰か(つまり、製品の開発者)が、私(製品のユーザ)と同じように作っている、と考えられませんか?
 そう考えると、“ユーザコントロール”に特化せず、提供されているコントロールでそういうことができないか調べれてみれば、何とかなるかもしれませんよね。
 ということで、適当なコントロールのメンバ一覧を見ると、Parentとプロパティがあります。これはSystem.Windows.Forms.Controlクラスに実装されています。ということは、Controlクラスから派生したクラスであれば、このプロパティが使えるということです。さらに、コンテナコントロールに配置するためには、Controls.Addメソッドを使います。このメソッドの引数はControlクラスのオブジェクトということになっています。
 そして、ユーザコントロールはControlクラスから派生しろと、書かれていたはず。

 クラスの判定?キャストできれば、そのクラス、またはそのクラスから派生したクラスですよね。ということは、「キャスト」や「型変換」、「型の変換」をキーに検索すれば出てきます。

_________________
comeseesee
常連さん
会議室デビュー日: 2004/11/24
投稿数: 36
投稿日時: 2005-04-27 10:02
Jitta 様
ご返事、ありがとうございます。

>>クラスの判定?キャストできれば、そのクラス、またはそのクラスから派生したクラス>>ですよね。ということは、「キャスト」や「型変換」、「型の変換」をキーに検索すれ>>ば出てきます。

キャストですか?キャストで例外が発生したら、「親コンテナはフォームじゃない」と分かる方法?
Jitta 様がおっしゃった方法は上述の例外を発生させる方法でしたら、JAVAをはじめる時に使ったことがありますが、その後ちょっときたないと感じて、あまり使いたくなくなりました。


[ メッセージ編集済み 編集者: comeseesee 編集日時 2005-04-27 10:04 ]
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2005-04-27 10:14
引用:

comeseeseeさんの書き込み (2005-04-27 10:02) より:

キャストですか?キャストで例外が発生したら、「親コンテナはフォームじゃない」と分かる方法?
Jitta 様がおっしゃった方法は上述の例外を発生させる方法でしたら、JAVAをはじめる時に使ったことがありますが、その後ちょっときたないと感じて、あまり使いたくなくなりました。


Cast時の例外を見て型を調べる方法以外は、というか型を調べる正統な方法は、Type メンバの各メソッド(プロパティでなく)かと。
それ以上は自分で試してみてはどうでしょう。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2005-04-27 10:18 ]

(う゛、編集前のを引用されちゃった…)

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2005-04-27 10:27 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-04-27 10:15
引用:

comeseeseeさんの書き込み (2005-04-27 10:02) より:
キャストですか?キャストで例外が発生したら、「親コンテナはフォームじゃない」と分かる方法?
Jitta 様がおっしゃった方法は上述の例外を発生させる方法でしたら、JAVAをはじめる時に使ったことがありますが、その後ちょっときたないと感じて、あまり使いたくなくなりました。


とりあえず反応する前に調べてみた方が良いのでは…
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-04-27 10:19
引用:

ぢゃん♪さんの書き込み (2005-04-27 10:14) より:
Cast時の例外を見て型を調べる方法以外は、というか型を調べる正統な方法は、Type メンバの各メソッド(プロパティでなく)かと。
それ以上は自分で試してみてはどうでしょう。


インスタンスが取得できている場合と、Typeが取得できている場合で方法が違いますよね。
インスタンスが取得できているならもっと簡単です。
Type の場合は上記のメソッド等ですかね。


[ メッセージ編集済み 編集者: なちゃ 編集日時 2005-04-27 10:47 ]
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2005-04-27 10:41
引用:

なちゃさんの書き込み (2005-04-27 10:19) より:

インスタンスが取得できている場合と、Typeが取得できている場合で方法が違いますよね。
インスタンスが取得できているならもっと簡単です。


演算子のことを忘れてましたです(言語によって違う)。
で、ここで演算子の名前を書くのもありだけど、勉強のためにもヘルプで調べてもらいましょう(「演算子」というヒントは出しましたし)。

スキルアップ/キャリアアップ(JOB@IT)