9


1

Visual Studio - 継承されたコントロールの新しい "デフォルト"プロパティ値

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

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

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

最初は、これは関係ありません。 しかし、後でコンストラクタで継承クラスを `DropDownItems = 45;`に変更しても、これらのデザイナファイルはすべてハードコーディングされた値50を保持しているので、どのフォームのコントロールにも影響しません。 そして、ポイントを一箇所に設定して、顧客の考えが変わっても対処できるようにすることが全体の要点でした。

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

1 Answer


4


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