Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нажатие кнопки в C#

34K
15 декабря 2010 года
Dinar1623
57 / / 14.11.2010
Как сделать так, что бы по нажатию клавиши F1 открывалась форма.
Я пробовал так:
 
Код:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            Form2 r1= new Form2();
            string s = Convert.ToString(e.KeyChar);
            if (s == "F1")
                    r1.Show();

        }

Но когда запускаю проект и жму F1 ничего не происходит.
297
15 декабря 2010 года
koodeer
1.2K / / 02.05.2009
Естественно. Свойство e.KeyChar возвращает тип char, то есть один символ. Между тем "F1" - это строка длиной в два символа.

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


Вообще, по смыслу, вызов другой формы можно делать из меню. Это привычно большинству пользователей. Сделайте главное меню, в нём пункт показа второй формы, у него свойство ShortcutKeys поставьте F1.
Если стандартное меню не вписывается в общий дизайн, всё равно можно сделать реакцию нажатия на функциональные клавиши с его помощью, а само меню спрятать: Visible = false.
8.2K
15 декабря 2010 года
bagie2
299 / / 26.10.2008
особенно интересно, что форма каждый раз создается и вообще независимо от того нажата или нет нужная клавиша
242
19 декабря 2010 года
Оlga
2.2K / / 04.02.2006
Проверила сейчас в справке, почему же не работает, т.к. насчет того, что возвращает char, а это строка - не так это, возвращается все правильно, код клавиши и при конвертации все должно отображаться правильно, т.е. "F1", но событие KeyPress работает только с символьными клавишами, для отлавливания события нажатия клавиши F1 и ей подобной надо использовать событие KeyDown и/или KeyUp, и все работает, по крайней мере для down я проверила, но в данном примере я бы использовала все же Up, как по мне, это логичней.
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.control.keypress.aspx
76K
29 февраля 2012 года
kirillusgadus
1 / / 19.10.2011
С KeyUp можно и как то так:
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
string key = Convert.ToString(e.KeyData);
if (key == "F1")
{
Form1.ActiveForm.Enabled = false;
Help helpme = new Help();
helpme.Show();
}
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог