PropertyGridコントロールで使用するカスタム クラスを定義しています。たとえば、プロパティの 1 つが次のように定義されているとします。
[CategoryAttribute("Section Name"),
DefaultValueAttribute("Default value"),
DescriptionAttribute("My property description")]
public string MyPropertyName
{
get { return _MyPropertyName; }
set { _MyPropertyName = value; }
}
private string _MyPropertyName;
ご覧のとおりDefaultValueAttribute
、プロパティのデフォルト値を定義します。このようなデフォルト値は、次の 2 つの場合に使用されます。
このプロパティ値がデフォルト値から変更された場合、
PropertyGrid
コントロールはそれを太字で表示します。ResetSelectedProperty
のメソッドを呼び出すPropertyGrid
と、選択したセルにそのデフォルト値が適用されます。
の 1 つの制限を除いて、この概念は正常に機能しDefaultValueAttribute
ます。定数値のみを受け入れます。だから私は興味があります.たとえば、コンストラクターから、またはコードの後で動的に設定できますか?
編集:次を読むことができるこのコードを見つけることができましたDefaultValueAttribute
:
AttributeCollection attributes = TypeDescriptor.GetProperties(this)["MyPropertyName"].Attributes;
DefaultValueAttribute myAttribute = (DefaultValueAttribute)attributes[typeof(DefaultValueAttribute)];
string strDefaultValue = (string)myAttribute.Value;
問題は、どのように設定するかです。