11

VisualStudioで継承されたコントロールの新しいデフォルトのプロパティ値を設定するためのヘルプを探しています。

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

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

最初は、これは問題ではありません。しかし、後で継承しDropDownItems = 45;たクラスをコンストラクターで変更した場合、これらのデザイナーファイルにはすべて値50がハードコーディングされているため、これはどのフォームのコントロールにも影響しません。そして、大切なのは、お客様の考えを変えて対応できるように、一箇所に価値を設定することでした。

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

4

1 に答える 1

5

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

于 2008-08-10T23:11:39.133 に答える