かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

プロパティのカテゴリ/プロパティの非表示

仕事はじまるまで後5分。
とりあえず、一番簡単に試すためにユーザコントロールを作成!
ボタンを置いてTextをHelloにしてクリックするとWorldっていうダイアログを表示する。

フォームにおいて実行!!
無事でた!!

Worldが出るだけじゃつまらないので、Greetプロパティを追加。

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show(Greet);
}

#region プロパティ
private string greet;

public string Greet
{
    get { return greet; }
    set { greet = value; }
}        
#endregion

そのまま実行してボタンを押すと、何も表示されてないダイアログが出る!
OK予想通り。


Form1のデザイナからGreetプロパティに適当な値を設定する。
実行してボタンを押すと、Greetプロパティに設定した値が表示された。
ここもOK。


さて、このままだとGreetプロパティのプロパティエディタ上でのカテゴリが「その他」になってしまう。
(やっと本題)
カテゴリを設定するのに使うものは、

CategoryAttribute

さっそくGreetプロパティにつけてみる

#region プロパティ
private string greet;

[Category("表示")]
public string Greet
{
    get { return greet; }
    set { greet = value; }
}        
#endregion

デザイナで見ると表示の部分にいった!ばっちり。


次に、無意味にGreetプロパティを隠してみる。
これは

BrowsableAttribute

を使用する。


早速つけてみる。

#region プロパティ
private string greet;

[Category("表示")]
[Browsable(false)]
public string Greet
{
    get { return greet; }
    set { greet = value; }
}        
#endregion

ビルドしてデザイナで確認すると、プロパティウィンドウから消えてしまった。
成功!