2013-07-29 7 views
0

Эксперты,Приложение Windows - пользовательское событие вызывается несколько раз

У меня возникает одна проблема в приложении Windows во время нажатия кнопки.

У меня есть два файла A.cs & b.cs

В A.cs файле У меня есть кнопка под названием «Load» и при нажатии на эту кнопку, мне нужно, чтобы вызвать функцию в B.cs.

Для этого я написал обработчик событий.

Common File:

общественного делегат недействительного MyEventHandler (объект отправитель, EventArgs е, строка TagID);

A.cs файл:

общественное мероприятие MyEventHandler OnTagLoad;

частная пустота btnLoad_Click (объект отправителя, EventArgs е) { если (OnTagLoad! = NULL) { OnTagLoad (отправитель, е, runTimeData); }}

b.cs файла:

HostForm.OnTagLoad + = новый MyEventHandler (HostForm_OnTagLoad);

частная пустота HostForm_OnTagLoad (объект отправителя, EventArgs е, строка runTimeData) { // Выполняем некоторые функции }

Проблема:

При нажатии на кнопку Загрузить событие становится срабатывает в два раза, и если я снова нажму кнопку, то такое же событие вызывается три раза и т. д.

При каждом нажатии кнопки «Загрузить» событие должно запускаться только один раз. Как мы можем добиться этого в виде окон.

Цените свою помощь.

+0

Пожалуйста, покажите любое место в вашем коде, который называют или имеет OnTagLoad. – Bit

ответ

2

Похоже

HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad); 

вызывается несколько раз. Либо переместить его в место в классе, который только называется один или удалить обработчик, прежде чем добавить его снова, как этот

HostForm.OnTagLoad -= new MyEventHandler(HostForm_OnTagLoad); 
HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad); 

(рекомендую первый подход)

+0

Этот подход я уже пробовал и не повезло. –

+0

Вы пробовали оба метода? Если это так, то есть что-то большее, чем то, что вы показали в своем сообщении, вызвав проблему. – keyboardP

+0

В основном я подписываюсь на событие в конструкторе файла B.cs. Это вызывает проблему? –

Смежные вопросы