DOBON.NET DOBON.NETプログラミング掲示板過去ログ

デザイナのプロパティが反映されない

環境/言語:[Windows 8.1, VisualStudio 2012, .NET Framework 2.0]
分類:[.NET]

現在C#でユーザーコントロールの作成をしている者です。
ユーザーコントロールはプロパティを複数持っており、
デザイナのプロパティウィンドウで太字に表示されるものはコンパイル時に反映されます。
しかし、今回新たに1つ追加したところ太字にならず、デザイナ上には反映されるのにコンパイルすると初期値になってしまいます。
以下ソースコードの一部で、Textは反映されるプロパティ、Marginは反映されないプロパティです。
どなたか原因・解決策がわかる方回答をよろしくお願いします。

private string text;
[Description("ラベルのテキストを設定します。")]
[Category("表示")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
public override string Text
{
get
{
return text;
}
set
{
text = value;
this.Invalidate();
}
}

protected int margin;
[Description("ラベルの隣の文字との間隔を設定します。")]
[Category("表示")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
public new int Margin
{
get
{
return margin;
}
set
{
margin = value;
this.Invalidate();
}
}
DefaultValue属性をつけてやればどうでしょうか。
Hongliangさんのアドバイス通りDefaultValueに設定したところうまく動きました。ありがとうございました。
Textの方はDefaultValueに設定していないのになぜ動くのかという疑問が残りましたが…

DOBON.NET | プログラミング道 | プログラミング掲示板