2010年1月26日火曜日

C# カスタムコントロールのプロパティを作る

///
/// コントロールの状態を保存する変数を書く
///

private bool designVisibleView = true;

///
/// プロパティの説明を書く
///

[Category("Design"), DefaultValue(true)] ← プロパティの型によって異なる
[Description("内容をここに書く")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public bool VisibleView
{
set
{
designVisibleView = value;
this.panelView.Visible = designVisibleView;
}
get { return designVisibleView; }
}

・直接コントロールのVisibleに値を設定/参照すると、使用側フォームなどで値が保持されない場合がある。
・DesignerSerializationVisibility.Visible = インスタンスごと保存される。
・DesignerSerializationVisibility.Content = インスタンスの変更されたプロパティだけが保存される。
・DesignerSerializationVisibility.Hidden = プロパティは保存されない。

0 件のコメント: