C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Formとトレイに配置されているコンポーネント一覧の取得


(過去ログ 11 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■2770 / inTopicNo.1)  Formとトレイに配置されているコンポーネント一覧の取得
  
□投稿者/ M.K (18回)-(2007/04/16(Mon) 13:15:39)

分類:[C# (Windows)] 

何時もお世話になっております、M.Kと申します。

開発環境は WinXP SP2 + VS2005 + C# です。

現在 デザイン時にフォームやその上に配置されている他のコンポーネントの
プロパティ(フォントや色など)を一括して操作・設定するコンポーネントを、
Componentクラスを継承して作成しています。

その仕様を満たすべく、リフレクションを使って自身が配置されているForm
のメンバ(コンポーネント)にアクセスし、for文で回しつつクラスを判別しな
がら個別に対処しているのですが、残念ながらこの方法ではデザイン時に一括
で値を設定する事が出来ませんでした。

そこでFormのControlsプロパティを再帰的に走査し、同様の処理を実現しよう
としたのですが、今度はコンポーネントトレイに配置されているコンポーネント
を取得することが出来ませんでした。(例えばStatusStripなど)

何方かデザイン時からForm(とコンポーネントトレイ)に配置されているコンポ
ーネントの一覧を取得し、それらを判別して個々に設定を行える方法をご存知
ありませんでしょうか?

以上 宜しくお願い致します。
引用返信 編集キー/
■2775 / inTopicNo.2)  Re[1]: Formとトレイに配置されているコンポーネント一覧の取得
□投稿者/ シャノン (129回)-(2007/04/16(Mon) 13:54:58)
シャノン さんの Web サイト
No2770 (M.K さん) に返信
> 何方かデザイン時からForm(とコンポーネントトレイ)に配置されているコンポ
> ーネントの一覧を取得し、それらを判別して個々に設定を行える方法をご存知
> ありませんでしょうか?

コントロールは Controls で、非コントロールコンポーネントは、フォームが持ってる
IContainer 型の components というヤツから取得できませんかね。
引用返信 編集キー/
■2778 / inTopicNo.3)  Re[2]: Formとトレイに配置されているコンポーネント一覧の取得
□投稿者/ M.K (19回)-(2007/04/16(Mon) 14:17:19)
No2775 (シャノン さん) に返信

> コントロールは Controls で、非コントロールコンポーネントは、フォームが持ってる
> IContainer 型の components というヤツから取得できませんかね。

2日程悩んでたんですけど、これで簡単に解決してしまいました(^^;

ありがとうございました。
解決済み
引用返信 編集キー/
■2790 / inTopicNo.4)  Re[3]: Formとトレイに配置されているコンポーネント一覧の取得
□投稿者/ シャノン (133回)-(2007/04/16(Mon) 17:10:27)
シャノン さんの Web サイト
No2778 (M.K さん) に返信
> ■No2775 (シャノン さん) に返信
>
>>コントロールは Controls で、非コントロールコンポーネントは、フォームが持ってる
>>IContainer 型の components というヤツから取得できませんかね。

継承フォームの親ってコレに含まれたっけ?
引用返信 編集キー/
■2791 / inTopicNo.5)  Re[3]: Formとトレイに配置されているコンポーネント一覧の取得
□投稿者/ M.K (20回)-(2007/04/16(Mon) 17:16:32)

一度は解決済みにしたのですが、実行時にエラーが発生してしまいました
ので再燃させて下さい。 (嬉しさの余り検証が疎かになっていました^^;)

>コントロールは Controls で、非コントロールコンポーネントは、フォームが持ってる
>IContainer 型の components というヤツから取得できませんかね。

デザイン時は Container に実体が存在しているにも関わらず、実行時には
Container が null になっているようで、エラーになってしまいます。

なぜ実行時に限ってnullになるのか皆目検討もつかないのですが、実行時
デザイン時問わず Components にアクセスする方法は無いものでしょうか?

最悪実行時はリフレクション、設計時は Container.Components で回避しよ
うかとは思いますが、すっきりとしないもので…

引用返信 編集キー/
■2792 / inTopicNo.6)  Re[4]: Formとトレイに配置されているコンポーネント一覧の取得
□投稿者/ M.K (21回)-(2007/04/16(Mon) 17:20:25)
No2790 (シャノン さん) に返信

> 継承フォームの親ってコレに含まれたっけ?

むむむ、もしかして実行時にエラーになるのはこの辺の問題だったり
するのでしょうか。

この辺り、何かご存知でしたら教えて下さい。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -