かずきのBlog@hatena

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

デフォルトのプロパティ

1つ前のエントリでBrowsable(false)にしてしまったGreetプロパティををBrowsable(true)に変更する。
隠したってしゃぁないしね。


さて、このユーザコントロールではGreetプロパティを設定してもらわないと何もはじまらない!
そんな重要なプロパティはデフォルトのプロパティにしてしまおう。
そのときに使う属性はこれだ。

DefaultPropertyAttribute


この属性をつけるとこんな感じのコードになる

namespace CustomControlTest
{
    [DefaultProperty("Greet")]
    public partial class HelloControl : UserControl
    {
        public HelloControl()
        {
            InitializeComponent();
        }

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

        #region プロパティ
        private string greet;

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

        #endregion
    }
}

ビルドしてデザイナ上で確認!!
特に何も変わらないような…
まぁいい。


と思ったら変わってた!
フォーム上に置いたコントロールを選択すると、Greetプロパティが一番に選択されている。
なるほどね。