Событие нажатия кнопки - PullRequest
1 голос
/ 29 июня 2010

В моей программе есть кнопка, которую нужно щелкнуть через некоторое время после завершения цикла. Какой код нажать на кнопку?

1 Ответ

6 голосов
/ 29 июня 2010

Чтобы программно нажать кнопку, просто вызовите метод Click:

button.Click();

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

В своем вопросе вы упоминаете, что выполняете цикл while, который, предположительно, занимает некоторое время.Если вы сделаете это наивным способом - запустив его в основном потоке приложения - это приведет к блокировке пользовательского интерфейса во время работы цикла.Чтобы это исправить, вам нужно запустить цикл while в другом потоке, например, используя BackgroundWorker.Но затем, когда ваш цикл завершается, вы должны быть осторожны, чтобы гарантировать, что событие click вызывается в главном потоке.Общий способ сделать это - использовать Invoke, но в конкретном случае, когда у вас есть BackgroundWorker, вы можете запустить код после завершения цикла в обработчике событий OnRunWorkerCompleted, тогда вам не нужноВызовите себя сами, так как BackgroundWorker позаботится об этом за вас.

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