- PR -

コンポーネントクラスの公開を制御する方法

投稿者投稿内容
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2004-12-27 00:29
[System.ComponentModel.ToolboxItem(false)]
の属性を表示させたくないコントロールのクラスにつけるとどうですか??

はなたれ小僧
常連さん
会議室デビュー日: 2003/07/17
投稿数: 21
投稿日時: 2004-12-27 09:56
Kazukiさん、コメントありがとうございます。
やっぱり属性で制御する方法があったのですね。

多段継承のケースで試してみました。

[System.ComponentModel.ToolboxItem(false)]
public class A {....}
public class B : A {....}
public class C : B {....}
[System.ComponentModel.ToolboxItem(true)]
public class D : C {....}

継承の段階で一度属性値をfalseにすると、あらためてtrueにするまではその性質が継続するようで、上の例ではクラスDだけが候補のリストに表示されました。

実は先に教えてもらったabstract宣言による制御で機能的には困っていなかったのですが、abstractにしたクラスファイルをダブルクリックして開こうとするとデザイナがabstractなくラスはインスタンス化できません、といってあのアイボリー色の表示を拒否することがあったのです。(なぜかこのエラーはその後再現できなくて不思議なのですが。)

一応、今回の件ではこの属性による制御が適切な解であろうと判断しました。
いろいろな方に助言をいただきほんとうに助かっています。

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