Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/55: Рейтинг темы: голосов - 55, средняя оценка - 4.75
Заблокирован

Программно нажать на кнопку в своем приложении - PerformClick не работает

19.05.2015, 20:28. Показов 10991. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
мне надо программно нажать на кнопку в своем приложении, PerformClick упорно отказывается работать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2015, 20:28
Ответы с готовыми решениями:

Как нажать программно кнопку в другом приложении
День добрый! Возник вопрос программно нажать в другом приложении кнопку; примеры видел, не все функции работают только в примерах. ...

Программно "нажать" на экран в своём приложении
Есть способ программно делать touch event'ы? Click, long click и drag в перспективе.

Как можно нажать программно нажать на кнопку, у которой нет id?
Как можно нажать программно нажать на кнопку, у которой нет id?? В html она прописывается так: <a href="#" onclick=" ...

16
 Аватар для Art
153 / 153 / 56
Регистрация: 20.12.2011
Сообщений: 1,614
19.05.2015, 22:22
Создайте метод-событие, которое будет реализовывать функционал при клике. Затем вызовите данный метод, где необходимо.
0
Заблокирован
19.05.2015, 22:36  [ТС]
Цитата Сообщение от Art Посмотреть сообщение
Создайте метод-событие, которое будет реализовывать функционал при клике. Затем вызовите данный метод, где необходимо.
я не хочу лишний код плодить, мне надо именно кнопку нажать и все тут
0
 Аватар для СвободныйНик
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 610
19.05.2015, 22:48
так пробовал?
C#
1
this.Button1Click(sender,e);
0
Заблокирован
20.05.2015, 09:04  [ТС]
Цитата Сообщение от СвободныйНик Посмотреть сообщение
this.Button1Click(sender,e);
где взять sender и e?

Добавлено через 55 секунд
кстати PerformClick срабатывает когда пишешь это например в обработчике другой кнопки, а я пытаюсь сделать это в конструкторе формы...
0
 Аватар для wm_leviathan
214 / 214 / 73
Регистрация: 12.01.2011
Сообщений: 767
20.05.2015, 10:08
C#
1
button1.Click += new EventHandler(button1_Click);
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
20.05.2015, 10:28
Помоему програмно нажимать кнопки в своей программе очень глупо. Проще вынести необходимый функционал в отдельный метод и вызвать его когда необходимо.
0
 Аватар для СвободныйНик
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 610
20.05.2015, 19:08
Цитата Сообщение от Rillaxac Посмотреть сообщение
где взять sender и e?
да нигде
вот пример
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Button1Click(object sender, EventArgs e)
{
    MessageBox.Show("Абракадабра.Сим Салабим!");
}
//можно так:
void Button2Click(object sender, EventArgs e)
{
    this.Button1Click(sender,e);            
}
//или так:
void Button3Click(object sender, EventArgs e)
{
    button1.PerformClick();
}
всё работает
Цитата Сообщение от Rillaxac Посмотреть сообщение
PerformClick упорно отказывается работать
как-нибудь ругается?
выложи часть своего кода, видать там где-то ошибка
0
Заблокирован
20.05.2015, 21:47  [ТС]
Цитата Сообщение от wm_leviathan Посмотреть сообщение
button1.Click += new EventHandler(button1_Click);
не помогло
Цитата Сообщение от Someone007 Посмотреть сообщение
Помоему програмно нажимать кнопки в своей программе очень глупо. Проще вынести необходимый функционал в отдельный метод и вызвать его когда необходимо.
кому как, я наоборот считаю что нет смысла писать лишний код, проще вызвать обработчик события
Цитата Сообщение от СвободныйНик Посмотреть сообщение
да нигде
вот пример
я же говорю мне надо вызвать из конструктора формы, там нету "object sender, EventArgs e" в конструкторе, а PerformClick не срабатывает
Цитата Сообщение от СвободныйНик Посмотреть сообщение
как-нибудь ругается?
никак
Цитата Сообщение от СвободныйНик Посмотреть сообщение
выложи часть своего кода, видать там где-то ошибка
какие могут быть ошибки в вызове одного метода без параметров -_-
C#
1
button2.PerformClick();
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
20.05.2015, 22:10
Цитата Сообщение от Rillaxac Посмотреть сообщение
какие могут быть ошибки в вызове одного метода без параметров
ну на пример не приписанный обработчик события Click у button2...
0
Заблокирован
21.05.2015, 10:38  [ТС]
Цитата Сообщение от nedel Посмотреть сообщение
ну на пример не приписанный обработчик события Click у button2...
есть там обработчик, вы что меня за дебила держите чтоли

Добавлено через 34 секунды
з.ы. не хочу выкладывать весь код, это конфиденциальная информация
0
21.05.2015, 10:46

Не по теме:

Цитата Сообщение от Rillaxac Посмотреть сообщение
вы что меня за дебила держите чтоли
нет, просто простые ошибки труднее всего найти, а обработчик часто теряется по недосмотру при копировании/вставке контрола в дизайнере

0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
21.05.2015, 10:52
если sender и e не нужны, то можно так
C#
1
button1_Click(null, null);
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
21.05.2015, 10:56
Исходя из того, что есть в коде метода PerformClick, он не сработает для кнопки у которой
Enabled или Visible равно false
или ControlStyle не имеет установленного флага Selectable
или если не прошла успешно валидация активного контрола
0
Заблокирован
21.05.2015, 16:26  [ТС]
Цитата Сообщение от nedel Посмотреть сообщение
нет, просто простые ошибки труднее всего найти, а обработчик часто теряется по недосмотру при копировании/вставке контрола в дизайнере
никогда у меня такого не было
Цитата Сообщение от Даценд Посмотреть сообщение
если sender и e не нужны, то можно так
не выходит все равно
Цитата Сообщение от nedel Посмотреть сообщение
Исходя из того, что есть в коде метода PerformClick, он не сработает для кнопки у которой
Enabled или Visible равно false
или ControlStyle не имеет установленного флага Selectable
или если не прошла успешно валидация активного контрола
все там true, мне вообще кажется что все дело в том что видимо оно не хочет нажиматься из за вызова в конструкторе, я же говорю когда я пишу PerformClick для той же кнопки в любом обработчике он работает, а вот в конструкторе хоть убей не хочет
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
21.05.2015, 17:01
Цитата Сообщение от Rillaxac Посмотреть сообщение
в конструкторе хоть убей не хочет
если вы его вызываете перед InitializeComponent(), то
Цитата Сообщение от nedel Посмотреть сообщение
не приписанный обработчик события Click у button2
, ибо он приписывается в InitializeComponent

Добавлено через 12 минут
свойство Visible возвращает false пока контрол не будет создан.
лучше в кострукторе вызвать метод обработчик
C#
1
 button2_Click(button2, EventArgs.Empty);
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
21.05.2015, 19:37
Вот так все работает. Верьте мне.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace _4
{
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            button1_Click(null, null);
            InitializeComponent();
            button1.Click+=new EventHandler(myBtnClick);
            myBtnClick(null, null);
        }
 
        private void myBtnClick(object sender, EventArgs e)
        {
            MessageBox.Show("ку-ку!");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("куку");
        }
    }
}
Лично проверил.
button1_Click - обработчик, созданный двойным по кнопке. Он может быть вызван и до и после InitializeComponent.
myBtnClick - обработчик, созданный программно. Он может быть вызван только после InitializeComponent.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2015, 19:37
Помогаю со студенческими работами здесь

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

Нажать на кнопку в другом приложении
Доброго дня! Из программы запускается процесс стороннего приложения, открывается вордовский документ и запускается макрос с закрытым...

Нажать кнопку в чужом приложении
Помогите нажать кнопку на "левом" приложение !!!!!

Не получается нажать кнопку в другом приложении
Делаю приложение-кликер, которое будет закрывать окна с ошибкой в приложении, установленном на ПК. Приложение работает, окно с ошибкой...

Как нажать на кнопку в другом приложении?
Как нажать на кнопку в другом приложении? Захватываю я его так: static extern IntPtr FindWindow(String...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru