Если вы хотите запустить второе событие и дождаться его завершения, прежде чем продолжить, то почему бы просто не запустить синхронно из обработчика первого события? Это было бы намного проще.
EDIT:
Если вы хотите, чтобы одна кнопка запускала код, который находится в обработчике событий другой кнопки, я бы предложил вместо этого переместить ее в отдельную функцию и просто вызвать ее. Другими словами, сделайте это:
private void button1_Click(object sender, EventArgs e)
{
DoButtonStuff();
}
private void button2_Click(object sender, EventArgs e)
{
DoButtonStuff();
}
private void DoButtonStuff()
{
// code that was originally in button2_Click()
}
Если кнопки выполняют одно и то же, вы можете просто назначить им один и тот же обработчик.
Но если вам действительно нужно программно «нажать» кнопку, то, возможно, самый простой способ:
button2.PerformClick();
Это вызовет событие Click
.