- PR -

アイテムコレクションのアイテムに独自プロパティを実装するには

1
投稿者投稿内容
Ts-Factory
常連さん
会議室デビュー日: 2006/08/08
投稿数: 42
投稿日時: 2008-07-24 22:50
いつもおせわになります。

TabControlのアイテムであるTabPageに独自のプロパティを追加したいと考えております。独自プロパティの用途はタブ部の背景色と前景色です。

TabPageクラスを継承したクラスを生成し、独自プロパティを追加して
TabControlに反映(?)すればよいかと考えております。

TabControlのようにアイテムをコレクションでもっているような
コントロールはこのような方法でいいのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-07-25 11:43
引用:

Ts-Factoryさんの書き込み (2008-07-24 22:50) より:

TabPageクラスを継承したクラスを生成し、独自プロパティを追加して
TabControlに反映(?)すればよいかと考えております。


この方法でやるなら System.Windows.Forms.TabControl にそのまま反映させるのは難しいので、TabControl 自体も拡張しないとダメだと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Ts-Factory
常連さん
会議室デビュー日: 2006/08/08
投稿数: 42
投稿日時: 2008-07-26 10:10
じゃんぬねっと さん、返答ありがとうございます。
引用:

この方法でやるなら System.Windows.Forms.TabControl にそのまま反映させるのは難しいので、TabControl 自体も拡張しないとダメだと思います。


TabControlを拡張するにはTabPageCollectionも拡張することになるのでしょうか?
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-07-26 14:27
TabControl.controls(n).SetTabBgColor(Color.Pink)
とかやりたいんでしょう?
TabControl、TabPage、コレクションクラスをいじらないとダメぽっぽいです。

Directcast(TabControl.controls(n),MyTabPage).SetTabBgColor(Color.Pink)
ならば、TabPage だけで済みますね。
お だ
会議室デビュー日: 2008/04/02
投稿数: 14
投稿日時: 2008-07-26 17:11
引用:

独自プロパティの用途はタブ部の背景色と前景色です。


下記URLの様な事を実現したいのでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7737&forum=7

その場合は、
引用:

この方法でやるなら System.Windows.Forms.TabControl にそのまま反映させるのは難しいので、TabControl 自体も拡張しないとダメだと思います。


って事じゃないですか?

多分、TabControl に対して実装を行わないといけなかったと思います。
Ts-Factory
常連さん
会議室デビュー日: 2006/08/08
投稿数: 42
投稿日時: 2008-07-28 12:02
引用:

下記URLの様な事を実現したいのでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7737&forum=7


この記事を参照してタブ部の色を変えるところまではできております。
しかし、色を固定にしたくないのでプロパティで指定できればと思っております、
また、そのプロパティをTabPage コレクションエディタで編集したいので
そのためにはTabPageクラスを拡張するのことになるのかな・・・
と考えております。
お だ
会議室デビュー日: 2008/04/02
投稿数: 14
投稿日時: 2008-07-29 18:33
引用:

この記事を参照してタブ部の色を変えるところまではできております。
しかし、色を固定にしたくないのでプロパティで指定できればと思っております


これは、 TabPage の拡張で可能だと思います。

引用:

また、そのプロパティをTabPage コレクションエディタで編集したいので
そのためにはTabPageクラスを拡張するのことになるのかな・・・
と考えております。


こちらは、 TabPage の拡張だけでは難しいと思います。
TabPage コレクションエディタは、
System.Windows.Forms.TabPage を追加する様になっていると思います。
ですから、拡張した TabPage をコレクションエディタから追加する事は、
出来ないと思います。

これは、TabControl を拡張するしかないのではないでしょうか?
それ以外の方法は、私には分かりませんでした。

※TabControl の TabPages プロパティに追加した
TabPage を無理矢理(〜.designerファイルを編集する等)
拡張 TabPage に変更すれば、TabPage コレクションエディタ で編集可能です。
(新規追加は出来ませんが、この方法で編集は可能です。)
Ts-Factory
常連さん
会議室デビュー日: 2006/08/08
投稿数: 42
投稿日時: 2008-07-30 23:59
引用:

System.Windows.Forms.TabPage を追加する様になっていると思います。


既存のTabPageことばかりかんがえてました。
デザイナで追加できることを考慮するとますます難しく思えてきました。

TabControlに別なコレクションプロパティを実装する方向で
考えて見たいと思います。

みなさま、ありがとうございました。
1

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