Добавление горячей клавиши F5 в C#

Я делаю приложение Windows (WinForms) и хотел бы, чтобы мое приложение назвало метод, когда пользователь нажимает F5 - это должно работать независимо от того, что делает пользователь, но они должны использовать программу - я не хочу использовать глобальные рычаги - какие-либо идеи?

8
задан joe 26 December 2009 в 20:34
поделиться

3 ответа

Переопределите форму ProcessCmdKey на Вашей основной форме и ищите F5.

protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
    bool bHandled = false;
    // switch case is the easy way, a hash or map would be better, 
    // but more work to get set up.
    switch (keyData)
    {
        case Keys.F5:
            // do whatever
            bHandled = true;
            break;
    }
    return bHandled;
}
15
ответ дан 5 December 2019 в 07:35
поделиться

Проверьте свойство Form.KeyPreview, оно позволит вам поймать все события KeyDown, KeyUp и KeyPress на уровне формы, прежде чем разрешить их обработку отдельными элементами.

MSDN Form.KeyPreview page

4
ответ дан 5 December 2019 в 07:35
поделиться

Если у вас есть только одна форма, которая может иметь фокус, вы можете установить свойство KeyPreview этой формы на true и обрабатывать событие KeyPress .

Свойство KeyPreview приведет к тому, что форма получит все нажатия клавиш, независимо от того, какое управление на форме имеет фокус ввода.

.
3
ответ дан 5 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: