otherForm.FormClosing += delegate { .. }
компилируется, потому что FormClosing имеет тип Event. На событие можно подписаться, и при его запуске ваш код будет запущен.
Вы не можете использовать этот синтаксис для метода, подобного DoSomething()
. Метод может быть вызван только с чем-то вроде otherForm.DoSomething()
. Код в DoSomething()
будет выполнен.
Однако вы можете создать собственное событие и запустить его при выполнении DoSomething () во второй форме.
Вот документация MSDN о публикации собственного события.
Это было бы что-то вроде:
public event EventHandler RaiseCustomEvent;
public void DoSomething()
{
OnRaiseCustomEvent();
}
protected virtual void OnRaiseCustomEvent()
{
EventHandler handler = RaiseCustomEvent;
if (handler != null)
{
handler(this, EventArgs.Empty););
}
}