Поднять событие нажатия кнопки (или любого элемента управления) вручную. C # - PullRequest
11 голосов
/ 03 мая 2009

Может кто-нибудь сказать мне, как вызвать событие нажатия кнопки управления (или в этом отношении для любого события).

Платформа: .net 2.0 / 3.0 / 3.5 Язык: c # Домен: Приложение Windows, WinForms и т. Д.

Ответы [ 5 ]

20 голосов
/ 03 мая 2009

Вы можете использовать метод Button.PerformClick .

12 голосов
/ 03 мая 2009

Может быть, решение намного проще:

Возможно, вы не хотите, чтобы ваш код "нажимал кнопку".
Вы просто хотите запустить код, который находится за кнопкой из другого места в форме?

Если да, поместите код в отдельный метод (например, «DoActionXXX») и вызовите метод из кнопки и из любого другого места, где он вам нужен.

2 голосов
/ 03 мая 2009

Вы также можете взглянуть на Windows Accessibility или некоторую инфраструктуру автоматизации пользовательского интерфейса, которая позволяет программно вызывать элементы управления пользовательского интерфейса реагировать на жесты пользователя. Если элемент управления не предлагает способ для его событий запускаться программно, например, PerformClick, вы можете извлечь из этого элемента управления и предоставить открытый метод, такой как PerformnXXX, который при внутреннем вызове вызывает обработчики событий, подписанные на определенное событие.

1 голос
/ 22 ноября 2010

нажатие кнопки и новое окно вручную например .. dital.cs открыть окно май

0 голосов
/ 23 мая 2012

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

так ..

void myEventHandler (ObjectwhoSentTheMessage O, событие e) {

MyOtherFunction ();

// использовать событие после, если хотите, и т. Д.

}

...