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

Использование HotKey

25.12.2023, 09:05. Показов 812. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Решил попробовать на форме авторизации пользователя программы дать команду:
По нажатию на Enter происходить отработка нажатия кнопки "Вход"
Код на обработку:
C#
1
2
if(KeyBoard.IsKeyDown(Key.Enter))
    ButtonCkic(button, null);
И есть у меня собственная форма которая выводит ошибку пользователю. На ней доступна одна кнопка "Ок" которая закрывает форму.

И если я нажму Enter на вводе пароля и там будет ошибка он откроет мой диалог и скажет. Но если на нем нажать Enter, то форма закроется и опять отработает нажатие на авторизации и откроется форма с ошибкой. Как я могу избавиться от такого зацикливания? Я пробовал булевую переменную во время открытия формы она недоступна, а после закрытия становиться доступной, думал может они одновременно работают, но нет. Как могу выйти из ситуации?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2023, 09:05
Ответы с готовыми решениями:

HotKey Manager
Хотелось бы написать свой менеджер. Не могу никак сообразить с чего начать. Можете что-то посоветовать? Заранее спасибо.

Автоклик по hotkey
Всем привет! Помогите пожалуйста, как сделать программу которая будет начинать работать по нажатию хоткея и останавливаться, если я опять...

Как сделать hotkey?
Всем привет, хотел сделать чтобы по нажатию клавиши f11 происходило действие, а оно не чего не делает. using System; using...

6
151 / 135 / 29
Регистрация: 02.07.2013
Сообщений: 969
25.12.2023, 09:44
вообще не ясно что у вас за проблема

вы приложили 2 строчки кода непонятно в каком месте кода лежащие
и задаете вопросы типа а почему у меня форма реагирует на нажатие так а не иначе.
0
2 / 2 / 1
Регистрация: 25.11.2018
Сообщений: 101
25.12.2023, 09:47  [ТС]
golosalex, Все действия записаны на самих формах методом KeyDown.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
25.12.2023, 10:28
Лучший ответ Сообщение было отмечено Nedoprogram как решение

Решение

Судя по всему вы прописали глобальный хоткей. Я бы задал KeyDown для текстовых полей и не более. Ещё один момент.

Цитата Сообщение от Nedoprogram Посмотреть сообщение
C#
1
2
if(KeyBoard.IsKeyDown(Key.Enter))
    ButtonCkic(button, null);
стоит выносить код в отдельный метод аля Login не привязаный к обработчикам, а не пинать чужие.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
25.12.2023, 10:28
Лучший ответ Сообщение было отмечено Nedoprogram как решение

Решение

Цитата Сообщение от Nedoprogram Посмотреть сообщение
методом KeyDown
Если это стандартная форма логина с кнопками "ОК/Отмена", то у кнопок есть событие клика, т.е. не нужно явно обрабатывать 'KeyDown'. Более того, для кнопки "OK", можно выставить, что это кнопка по умолчанию и тогда она будет автоматом перехватывать 'Enter' и выдавать своё событие клика, даже если в фокусе поле ввода.

Если это какая-то вырожденная форма логина без кнопок, то во-первых, можно обрабатывать именно 'KeyPress', во вторых, можно выставлять 'Handled' в параметрах события.
1
25.12.2023, 10:32

Не по теме:

P.S. если ошибка в духе "неверный логин-пароль", рекомендую не делать так. Бесит шо ппц каждый раз клацать. Лучше добавить label, который будете показывать при ошибке. Фокус автоматом переводить на поле ввода пароля и выделять весь текст. В идеале добавить системный звук ошибки.

0
2 / 2 / 1
Регистрация: 25.11.2018
Сообщений: 101
25.12.2023, 10:44  [ТС]
kotelok, Wolfdp, Перевел обработчик нажатия на поля ввода данных и дал фокус на кнопку "Ок" на форме ошибки. Теперь все срабатывает как надо. Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2023, 10:44
Помогаю со студенческими работами здесь

При нажатии на кнопку Hotkey
Добрый день форумчане как сделать Hotkey к примеру нажать кнопку клавиатуру любую . и записывалась в текст. пост с отсюда...

Создание глобальных HotKey на WPF C#
Работаю над программой, столкнулся с проблемой создания глобальных горячих клавиш на WPF, должен срабатывать метод после выделении текста...

Как keybd_event игнорировать HotKey
Здравствуйте. Нужно чтобы keybd_event нажимал горячую клавишу как обычную. У меня в программе используются горячие клавиши. Но...

Как вывести HotKey в TextBox?
Приветствую, как реализовать что бы в поле ввода, выводились нажатие клавиш, например Ctrl + W Alt+W Shift +W А при нажатие на...

Как послать HotKey прямо в проводник?
..так как не всегда активное окно - окно проводника. (свертывать все окна и/или симулировать щелчки где-попало это конечно не вариант) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru