delegat怎么用啊,在C#中?

        cb[j]= new CheckBox();
            cb[j].FontSize = 16;
           cb[j].Checked += delegate void (object sender, MouseButtonEventArgs e) {
               MessageBox.Show(j.ToString());
               cb[j].Content = cb[j].Content + "[完成于" + DateTime.Now.ToShortTimeString() + "]";

           };

这段代码中delegate用法有问题

checked不是事件,而是属性。

 cb[j] = new CheckBox();
cb[j].FontSize = 16;
cb[j].CheckedChanged += new EventHandler((sender, e) => {
  MessageBox.Show(j.ToString());
  cb[j].Content = cb[j].Content + "[完成于" + DateTime.Now.ToShortTimeString() + "]";
});

委托不知道啥用?
lambda

cb[j].CheckedChanged += (sender, e) => {
MessageBox.Show(j.ToString());
cb[j].Content = cb[j].Content + "[完成于" + DateTime.Now.ToShortTimeString() + "]";
};