- PR -

ユーザーコントロールにユーザーコントロールを追加

1
投稿者投稿内容
KNGY
会議室デビュー日: 2008/04/28
投稿数: 8
投稿日時: 2008-11-27 11:47
いつもお世話になっております。

現在WindowApplicationをVS2008(.NET3.5、Windos XP pro.)で作成しています。

そこでUserControlを親として持つユーザーコントロールAのControlsに
UserControlを親として持つ別のコントロールであるユーザーコントロールBを追加しようとすると、追加はできるけれども表示した際にBが表示されません。

コントロールAの子としてBを管理し、かつ表示もうまいことさせる方法がありましたらご教授お願いします。
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-11-27 12:27
「親」というのがいまいち分かりません。
「継承」を意味しているんですか?
それとも「既に別のコントロールの Children に追加している」という意味ですか?
(たぶん「継承」の方でしょうけど・・・)

あと、ソースコードの抜粋があれば答えやすいです。



_________________
Nakamura Blog

[ メッセージ編集済み 編集者: なかむら 編集日時 2008-11-27 12:29 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2008-11-27 13:03
引用:

KNGYさんの書き込み (2008-11-27 11:47) より:
そこでUserControlを親として持つユーザーコントロールAのControlsに
UserControlを親として持つ別のコントロールであるユーザーコントロールBを追加しようとすると、追加はできるけれども表示した際にBが表示されません。



VS2008のデザイナ上での話ですか?それとも実行時の話ですか?

ご説明の内容を元にユーザコントロールA(ボタンを置いただけのもの)と
ユーザコントロールB(コンボボックスを置いただけのもの)を作成し、
ユーザコントロールA.Controls.Add(ユーザコントロールB)を行うコードを記述して
実行しましたが、普通に表示されましたよ。

ユーザコントロールBのVisibleプロパティやLocationプロパティが期待しない値(例えば、Visible=False)になっているのではありませんか?
KNGY
会議室デビュー日: 2008/04/28
投稿数: 8
投稿日時: 2008-12-03 14:11
結果解決しました。

二つの意味で使ってしまったのでややこしいですね。
>UserControlを親として持つユーザーコントロールA
この親は継承元のことです。

>コントロールAの子としてBを管理し
ここではコントロールAのChildrenとしてコントロールBをAddとしているという意味です。


>追加はできるけれども表示した際にBが表示されません。
Formに張り付いているコントロールAに同じくフォームに張り付いている別のコントロールBをコントロールAの子コントロールとして登録すると、コントロールBは元のロケーションを保ったままコントロールAの子コントロールとして追加されるのでコントロールAのロケーションからBのロケーションを足した箇所に張り付いており、いるけど表示範囲外になっていたという結末です。ロケーションを調整してやったら表示されました。

どうもお騒がせしました。

風になる
ベテラン
会議室デビュー日: 2008/07/28
投稿数: 85
投稿日時: 2008-12-06 12:00
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
1

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