かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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

仕事はじまるまで後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

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