0

カスタム ASP.NET コントロール (から派生WebControls.TextBox) を作成しました。

タイプになるコントロールにプロパティを追加したいと思います。

このプロパティは、実際には常に何らかの型の enum になります。そのため、デザイナーでそのコントロールのプロパティ ウィンドウを見ると、特定の enum から選択して、そのプロパティに値を割り当てることができるようにしたいと考えています。だから私は..として渡す列挙からの列挙子のリストを見たい..

例(私が何を意味するかを示すためだけにコンパイルされる実際のコードではありません):

私は2つの列挙型を持っています:

enum MyEnumABC
{
    A,B,C
}

enum MyColor
{
    Red,Blue,Green
}

私はこのコントロールを持っています:

 public class MyTextBox<T> : TextBox
{
    public T Classification
    {
        get { }
        set { }
    }
}

次に、次のコントロールを持つ Web ページを作成します。

<Alex:MyTextBox runat=server id="alex" Classification=MyEnumABC.A></Alex:MyTextBox>
<Alex:MyTextBox runat=server id="alex2" Classification=MyColor.Red></Alex:MyTextBox>

問題は、そのコントロールのコンストラクターに実際に型をどこで渡すことができるかということです。(ページ クラスは、コントロールのコンストラクターを呼び出すクラスであるためです。) 実際には、alex1 の型を MyEnumABC に設定し、alex2 の型を MyColor 型に設定する必要があります。

そして2番目の質問は、VS2008がHTMLのデザイナーでこれをサポートするようにする方法です(タグに分類を入力すると、値を選択するための書き込み列挙が開きます)およびコントロールのプロパティページ。

ここで私が言いたいことを理解していただければ幸いです。

ありがとう 。

4

1 に答える 1

0

特別なことをしなくても、デザイナーは enum プロパティをサポートします。コントロールのコードでプロパティを指定するだけで、プロパティ ウィンドウに表示できるようにすべての通常の属性を与えるだけで、プロパティ ウィンドウは自動的に列挙値をドロップダウンに表示します。

于 2009-01-28T12:57:08.053 に答える