Я новичок в c #, поэтому извиняюсь, если это нубский вопрос. Я пытаюсь прояснить синтаксис или шаблон для обработки событий в C #.
Итак, у меня есть Form
объект Form1
и Button button1
в форме. Я обрабатываю событие Click с помощью такого метода в Form1.cs:
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("click!");
}
, который работает нормально. Теперь в другой форме Form2
у меня есть TreeView treeView1
, и я хочу обработать событие BeforeExpand
. Поэтому я предположил, что это будет:
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
Debug.WriteLine("Hello!");
}
, который фактически не работает: этот метод никогда не вызывается, когда я раскрываю узел. Но несколько ответов SO подразумевают, что - это способ сделать это, например, этот один .
Во всяком случае, я нашел альтернативный подход, который работает для меня. В конструкторе формы свяжите обработчик события следующим образом:
treeView1.BeforeExpand += new TreeViewCancelEventHandler(anyMethodNameYouLike);
Так в чем же разница между этими двумя подходами? Почему синтаксис _event не работает для дерева? Есть ли разница между типами событий?
Спасибо