определить, было ли событие GUI запущено непосредственно пользователем или из-за назначения кода в .Net - PullRequest
1 голос
/ 25 сентября 2010

Предположим, вы используете элемент управления, например NumericUpDown , который имеет свойство value . и вы устанавливаете значение numericUpDown1.Value = 10; , тогда .net запускает событие numericaUpDown1ValueChanged (отправитель, аргументы) , также пользователь может напрямую установить значение этого элемента управления .Net вызовет одно и то же событие с тем же отправителем.

, чтобы иметь возможность определить, было ли событие сгенерировано кодом или прямым вводом пользователя , Я обычно оборачиваю свое задание следующим образом:

userDirectlyChangingValue = false;
numericaUpDown1.Value = 10;
userDirectlyChangingValue = true;

затем внутри события numericaUpDown1ValueChanged (отправитель, аргументы) Я бы использовал userDirectlyChangingValue , чтобы определить способ генерации события и действовать соответственно.

У меня вопрос: есть ли лучший / прямой путь в .Net для достижения этой цели?

Спасибо

1 Ответ

0 голосов
/ 25 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...