|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Здравствуйте, Подскажите пожалуйста каким образом в c# перехватить событие нажатие комбинации клавиш "CTRL+S". Есть стандартное событие windows forms "KeyPress", но оно не совсем мне подходит, так как оно ловит все нажатия клавиш, а мне надо чтобы событие возникало при нажатии клавиш "Ctrl+s". Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 10:38 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Serega325Здравствуйте, Подскажите пожалуйста каким образом в c# перехватить событие нажатие комбинации клавиш "CTRL+S". Есть стандартное событие windows forms "KeyPress", но оно не совсем мне подходит, так как оно ловит все нажатия клавиш, а мне надо чтобы событие возникало при нажатии клавиш "Ctrl+s". Заранее спасибо. а отфильтровать внутри? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 11:16 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Ролг ХупинSerega325Здравствуйте, Подскажите пожалуйста каким образом в c# перехватить событие нажатие комбинации клавиш "CTRL+S". Есть стандартное событие windows forms "KeyPress", но оно не совсем мне подходит, так как оно ловит все нажатия клавиш, а мне надо чтобы событие возникало при нажатии клавиш "Ctrl+s". Заранее спасибо. а отфильтровать внутри? Я пробовал фильтровать внутри KeyPress, но в таком случаи перехватываются все нажатия клавиш,а мне надо чтобы событие возникало только при нажатии "Ctrl+s", при нажатии других клавиш событие не должно возникать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 11:22 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Serega325, А если как-то так: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 11:38 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
yura-007Serega325, А если как-то так: Код: c# 1. 2.
Вот код, который реализован на данный момент. У меня есть контрол текстовый редактор, я хочу чтобы при нажатии "Ctrl+s" текст с контрола сохранялся в базу, но при таком коде, который Вы предлагаете (обработка события Control.KeyPress) событие вызывается при нажатии любых клавиш (в, м, п, в, а, р, п, alt+f4 и т.д.), а я хочу чтобы событие возникало только при нажатии "ctrl+s", т.е. сразу без фильтрации или хотя бы при нажатии "ctrl". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 11:55 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
[quot Serega325]yura-007Serega325, Вот код, который реализован на данный момент. char c = e.KeyChar; int i = (int)c; if ((i < 26) & (i != 3 & i != 22 & i != 9 & i != 13 & i != 1 & i != 4)) { e.Handled = true; if (i == 19) MessageBox.Show("Сохранить в базу","", MessageBoxButtons.YesNo); } . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 11:56 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Serega325yura-007Serega325, А если как-то так: Код: c# 1. 2.
Вот код, который реализован на данный момент. У меня есть контрол текстовый редактор, я хочу чтобы при нажатии "Ctrl+s" текст с контрола сохранялся в базу, но при таком коде, который Вы предлагаете (обработка события Control.KeyPress) событие вызывается при нажатии любых клавиш (в, м, п, в, а, р, п, alt+f4 и т.д.), а я хочу чтобы событие возникало только при нажатии "ctrl+s", т.е. сразу без фильтрации или хотя бы при нажатии "ctrl". такого не бывает, да и нет в этом ни какой нужды. Есть события с устройств ввода, не важно какую клавишу вы нажимаете, это событие обрабатывается, если вас интересует только конкретная кнопка, то для этого есть оператор IF. Ни какого события на кнопку клавиатуры повесить нельзя, так было задумано еще при царе горохе, когда Windows даже и не пахло и так будет всегда, потому, что это правильно. А у вас какие то непонятные хотелки, почему вас так волнует, что будет вызываться обработчик события при любом нажатии на кнопку? проясните общественности, в чем соль вашей хотелки? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 15:03 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Roman MejtesНи какого события на кнопку клавиатуры повесить нельзя, так было задумано еще при царе горохе, это не совсем так - акселераторы в windows - комбинации кнопок привязываются к пунктам меню (с Alt не путать) ShortcutKeys в винформах называется меню в форме можно сделать невидимым ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 15:13 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Serega325, Используйте не событие KeyPress, а событие KeyDown (либо KeyUp) Внутри обработчика что-то типа такого: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 16:32 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Serega325Подскажите пожалуйста каким образом в c# перехватить событие нажатие комбинации клавиш "CTRL+S". Есть стандартное событие windows forms "KeyPress", но оно не совсем мне подходит, так как оно ловит все нажатия клавиш, а мне надо чтобы событие возникало при нажатии клавиш "Ctrl+s". Заранее спасибо. Создать в форме меню(можно указать Visible = false), добавить пункт "Save", задать свойство ShortcutKeys = CTRL+S, обработчик клика в пункт меню решает задачу. и ни строчки говнокода, можно тем же путём добавить другие обработчики и всё в визуальном редакторе студии. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 17:12 |
|
Событие нажатия клавиш в c#
|
|||
---|---|---|---|
#18+
Roman MejtesSerega325пропущено... Вот код, который реализован на данный момент. У меня есть контрол текстовый редактор, я хочу чтобы при нажатии "Ctrl+s" текст с контрола сохранялся в базу, но при таком коде, который Вы предлагаете (обработка события Control.KeyPress) событие вызывается при нажатии любых клавиш (в, м, п, в, а, р, п, alt+f4 и т.д.), а я хочу чтобы событие возникало только при нажатии "ctrl+s", т.е. сразу без фильтрации или хотя бы при нажатии "ctrl". такого не бывает, да и нет в этом ни какой нужды. Есть события с устройств ввода, не важно какую клавишу вы нажимаете, это событие обрабатывается, если вас интересует только конкретная кнопка, то для этого есть оператор IF. Ни какого события на кнопку клавиатуры повесить нельзя, так было задумано еще при царе горохе, когда Windows даже и не пахло и так будет всегда, потому, что это правильно. А у вас какие то непонятные хотелки, почему вас так волнует, что будет вызываться обработчик события при любом нажатии на кнопку? проясните общественности, в чем соль вашей хотелки? Дела вот в чем: у меня есть редактор для интерпритатора с подсветкой синтаксиса, поскольку при вводе символа вызывается кучу всяких событий, то при очень быстром наборе текста он начинает подтормаживать, поэтому я хочу уменьшить количество вызываемых событий. Например вызывать событие только при нажатии системной клавиши (alt, ctrl,shift), а не фильтровать каждую клавишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 18:53 |
|
|
start [/forum/topic.php?fid=20&msg=39288152&tid=1400409]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 176ms |
0 / 0 |