- PR -

タブ内にフォームを生成した場合のタイトルバーについて

1
投稿者投稿内容
ひろ
会議室デビュー日: 2006/10/20
投稿数: 1
投稿日時: 2006-10-20 14:49
VS2005のC#でとあるアプリケーションを作成してます。タブブラウザのような形で、左側にツリーコントロール形式、右側にタブコントロールを配置しています。
タブコントロールは、タブブラウザ同様に次々と追加できます。
この作成したタブ内にフォームを複数作成しました。

タブ1---FormA,FormBがタブ内に表示される。
タブ2---FormC,FormD,FormEがタブ内に表示される。
FormA〜Eのいずれも同じフォーム(例:Form1)のインスタンスです。
この条件で、上記の内容(各タブ内にFormを作成)まではすべて実現できました。

しかし、どのタブ内のFormを選択しても選択したFormのタイトルバーの色が非アクティブのままなのです。例えば、タブ1内のFormA(またはFormB)を選択してもタイトルバーの色が非アクティブな状態なのですが、このやり方ではそういうものなのでしょうか?(このアプリケーション自体がかなりトリッキーな実装内容だというのは承知しています)
それとも何か基本的なことを見落としているのか、何か強制的な実現方法(API?)があるのでしょうか?

どんなことでも良いので、助言を頂けると助かります。

まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-10-20 15:17
引用:

しかし、どのタブ内のFormを選択しても選択したFormのタイトルバーの色が非アクティブのままなのです。例えば、タブ1内のFormA(またはFormB)を選択してもタイトルバーの色が非アクティブな状態なのですが、このやり方ではそういうものなのでしょうか?(このアプリケーション自体がかなりトリッキーな実装内容だというのは承知しています)
それとも何か基本的なことを見落としているのか、何か強制的な実現方法(API?)があるのでしょうか?


FormはControlを継承していても他とは違う特殊なクラスという認識のほうがいいと思います。
たぶんWindowStyleなんかを適切にごにょごにょしてあげれば何とかなるとは思いますが
例えばMDIではMDIClientというそのための内部の制御クラスがあるように
Formをコンテナの内側に置くことは推奨されないと思います。

タブ自体がアクティブであることを表していると思うのですが
その内側の一部分に対してそのようなことをする理由は何でしょうか?
必要が無ければ、Formではなくユーザーコントロールにしてはどうでしょうか?
1

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