Я новичок в 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 не работает для древовидного представления? Есть ли разница между типами событий?
Спасибо