かずきのBlog@hatena

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

デフォルトのプロパティ

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