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

StackOverflow https://stackoverflow.com/questions/7367

  •  08-06-2019
  •  | 
  •  

質問

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

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

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

最初は、これは問題ではありません。しかし、後で継承したクラスを次のように変更すると、 DropDownItems = 45; コンストラクターでは、これらすべてのデザイナー ファイルにはまだ値 50 がハードコーディングされているため、これはフォーム上のコントロールには影響しません。そして重要なのは、顧客の気が変わっても対処できるように、価値を 1 か所に設定することでした。

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

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top