かずきのBlog@hatena

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

デフォルトのプロパティ

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プロパティが一番に選択されている。
なるほどね。