Я использую окна.Должен ли я отказаться от подписки на события кнопки после использования в C#?
Приложение My C# содержит 100 user controls
. Я показываю/скрываю один из тех 100 user controls
в то время, когда мне нужно и скрыть все остальное. Каждый из тех, кто user controls
имеет 30 buttons
и подписаться на button
событие следующим образом в конструкторе:
public UserControl1()
{
InitializeComponent();
button1.Click += new EventHandler(MyButtonClick);
button2.Click += new EventHandler(MyButtonClick);
.
.
button30.Click += new EventHandler(MyButtonClick);
}
void MyButtonClick(object sender, EventArgs e)
{
// do something
}
Так что, когда я запустить приложение все 100 User controls
Подписка на 30 buttons
события и некоторые user controls
ПОДПИСАТЬСЯ к событию, но они никогда не используются во время использования приложения.
Я прочитал что-то о отписавшихся событиях и Here, но некоторые ответы говорят, что вы должны отказаться от подписки, потому что это вызывает утечку памяти, а некоторые говорят, что вам этого не нужно, поэтому ответ по-прежнему не ясен.
Мой вопрос: я должен отписаться от button
событий после его использования, например: когда я показываю/скрываю user control
. Если да, то как я могу подписаться на событие button
, когда отображается user control
и отписывается, когда он не отображается.
Не существует ли события show/hide, которое вы могли бы использовать для прикрепления/отсоединения обработчиков событий соответственно? – PeteGO
@PeteGO Я посмотрел сейчас, и я не нашел показанное даже – Kate
. Есть событие IsVisibleChanged, которое вы могли бы использовать. – PeteGO