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