Предположим, что у меня есть форма, открытая с помощью метода .ShowDialog().
В какой-то момент я прикрепляю некоторые обработчики событий к некоторым элементам управления в форме.
например.
// Attach radio button event handlers.
this.rbLevel1.Click += new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel2.Click += new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel3.Click += new EventHandler(this.RadioButton_CheckedChanged);
Когда форма закрывается, мне нужно удалить эти обработчики, правильно?
В настоящее время я делаю это, когда происходит событие FormClosing.
например.
private void Foo_FormClosing(object sender, FormClosingEventArgs e)
{
// Detach radio button event handlers.
this.rbLevel1.Click -= new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel2.Click -= new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel3.Click -= new EventHandler(this.RadioButton_CheckedChanged);
}
Однако я видел несколько примеров, когда обработчики удаляются в методе Dispose().
Есть ли способ "лучше всего" сделать это?
(Использование С#, Winforms,.NET 2.0)
Спасибо.