かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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

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

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