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

Ваш аккаунт

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

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

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

как поймать нажатия + - (с#)

Аноним
Всем привет!
Не могу найти как отловить нажатие клавиш + и -
на цифровой клавиатуре.
Пробовал так
private void OnKeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.???)
{
...
}
}
в Keys -огромный список клавиш, но ничего похожего на plus minus
или NumPlus NumMinus нет.
Может кто знает, как?
Или какой у них код?
Аноним
oops. Извините за глупый вопрос.
Keys.Add, Keys.Subtract
273
13 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=pervoPROkodetz]Всем привет!
Не могу найти как отловить нажатие клавиш + и -
на цифровой клавиатуре.
Пробовал так
private void OnKeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.???)
{
...
}
}
в Keys -огромный список клавиш, но ничего похожего на plus minus
или NumPlus NumMinus нет.
Может кто знает, как?
Или какой у них код?[/quote]
Если на цифровой клавиатуре, то используем свойство e.KeyCode. При нажатии на + на цифровой клавиатуре вываливается Keys.Add, а на обычный + вылазит Keys.Oemplus. Лично я это определил опытным путём (советую тебе перепроверить, т.к. у меня мультимедийная клава):
 
Код:
[FONT=Courier New][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][SIZE=2] Form1_KeyDown([/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] sender, [/SIZE][SIZE=2][COLOR=#008080]KeyEventArgs[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] e)[/FONT]
[FONT=Courier New]{[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080] Keys[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] key = e.KeyCode;[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080] MessageBox[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].Show(key.ToString());[/FONT]
[FONT=Courier New]}[/FONT]
[/SIZE]
Аноним
Спасибо, ЗАЗ-968М !
Это работает не только на мультимедийной клавиатуре.
Но, мягкотелые сделали, что событие OnKeyDown на форме
возникает только при первом нажатии. А как постоянно эти нажатия ловить? OnKeyPress? Но там не получится использовать Keys.
273
15 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=pervoPROkodetz]Спасибо, ЗАЗ-968М !
Это работает не только на мультимедийной клавиатуре.
Но, мягкотелые сделали, что событие OnKeyDown на форме
возникает только при первом нажатии. А как постоянно эти нажатия ловить? OnKeyPress? Но там не получится использовать Keys.[/quote]
Как это только при первом нажатии? Что ты имеешь в виду? Сколько раз ты нажмёшь кнопку, столько раз и сработает OnKeyDown.
Аноним
Если задавать на форме обработчик события KeyDown внизу пишется:

KeyDown
Occurs when a key is first pressed.

И, действительно, отрабатывает только первый раз.
273
15 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=pervoPROkodetz]Если задавать на форме обработчик события KeyDown внизу пишется:

KeyDown
Occurs when a key is first pressed.

И, действительно, отрабатывает только первый раз.[/quote]
Да при каждом нажатии работает это событие. А фраза Occurs when a key is first pressed, переводится не как "Срабатывает при первом нажатии" а как "Срабатывает когда первая кнопка нажата". Т.е. если ты нажмёшь компбинацию Ctrl+T, то что ты первым нажмёшь, то и сработает. Я написал самый простейший пример, который подсчитывает количество нажатий на клавишу из которого видно, что событие возникает при каждом нажатии
Аноним
да, действительно так...
Видимо, у меня глюк где-то глубже, тк мой код на это событие такой же. Будем искать... © Никулин Ю.
Спасибо ещё раз огромное, ЗАЗ-968М.
273
15 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=pervoPROkodetz]да, действительно так...
Видимо, у меня глюк где-то глубже, тк мой код на это событие такой же. Будем искать... © Никулин Ю.
Спасибо ещё раз огромное, ЗАЗ-968М.[/quote]
На здоровье..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог