2008-08-10 14 views
9

私はVisual Studioで継承したコントロールの新しいデフォルトのプロパティ値を設定する助けを探しています:のVisual Studio - 継承されたコントロールの新しい「デフォルト」のプロパティ値

class NewCombo : System.Windows.Forms.ComboBox 
{ 
    public NewCombo() { DropDownItems = 50; } 
} 

問題は、基本クラスのプロパティですDropDownItemsには、 'default'属性が設定されています(50ではなく)。その結果、コントロールをフォームにドラッグすると、デザイナーファイルに明示的なmycontrol.DropDownItems = 50;行が得られます。

最初はこれは問題ではありません。しかし、後で継承クラスをコンストラクタ内のDropDownItems = 45;に変更した場合、これらのデザイナファイルにはハードコードされているので、どのフォームのコントロールにも影響しません。そして、全体のポイントは1つの場所に値を設定することでしたので、私は顧客が心を変えることに対処できます。

明らかに、私がサブクラスで私自身のカスタムプロパティを作成していたのであれば、自分のデザイナのデフォルト属性を私が望むものにすることができました。しかしここでは、ベースのプロパティのデフォルト値を変更したいと思っています。基本クラスメンバにVisual Studioの属性を適用する方法はありますか?または、私が望む結果を得るための他の回避策がありますか?

答えて

4

派生クラスでは、問題のプロパティをオーバーライド(またはnewを使用してシャドー)してから、デフォルト値属性を再適用する必要があります。

関連する問題