454 / 333 / 115
Регистрация: 17.08.2014
Сообщений: 1,272
1
.NET 4.x

передача нажатой клавиши с одного компонента другому

02.12.2015, 01:40. Показов 1135. Ответов 3
Метки нет (Все метки)

Доброй ночи.
требуется при нажатии клавиш на одном компоненте передавать нажатую клавишу другому компоненту.
допустим нахожусь я в гриде при нажатии ввода фокус должен передаваться на textbox при этом клавиши должны передаваться в текстбокс;
пробовал KeyPressEventArgs и KeyEventArgs
в разных случаях разные преобразования но блин всегда проблемы либо с преобразованием числовой клавиатуры, либо с клавишами Enter caps, shift и тд. не понимаю почему коды преобразуются не верно enter переводится в строку как return и т.д
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2015, 01:40
Ответы с готовыми решениями:

Передача свойств одного компонента другому
Добрый день. Не подскажите - вопрос такой. Есть эталонный StringGrid1 с кучей свойств -...

Передача нажатой клавиши в другие формы
Здравствуйте. У меня есть приложение с главной формой (Main), на ней лежит N разных контролов. В...

Присваивание значения одного компонента другому
Здравствуйте! Как я могу присвоить компоненту TBEdit (в него можно записать только тип данных дата)...

Вывод на дисплей одного из трех текстовых сообщений, в зависимости от нажатой клавиши
Вывод на дисплей одного из трех текстовых сообщений, в зависимости от нажатой клавиши <1> - вывод...

3
22 / 22 / 9
Регистрация: 05.02.2013
Сообщений: 90
02.12.2015, 06:07 2
Нужно передавать информацию о нажатой клавише или введенный текст?
Во втором случае можно использовать ввод данных в ячейку grid: как только в ней появился символ перенести данные в textbox.

Enter, насколько я помню - это два символа перевод строки и возврат каретки.
0
454 / 333 / 115
Регистрация: 17.08.2014
Сообщений: 1,272
02.12.2015, 13:13  [ТС] 3
суть в том что какие бы преобразования я не производил. Всегда либо цифры неправильно преобразуются, либо какие то из функциональных клавиш в строку не преобразуются нормально. в строку нужно потому что нужно переслать нажатие в другой контрол.
для передачи в другой контрол я делаю в в контроле который перехватил нажатие клавиш проверку. Eсли все удовлетворяет проверки то нажатие клавиши блокирую
C#
1
e.Handled==true;
и после передаю фокус нужному объекту
C#
1
textbox1.focus();
после передаю сочетание клавиш
C#
1
sendkeys.send(string key);
так вот преобразование в строку 100% без проблем не получается. То вместо клавиши Enter возвращается Return
вместо back возвращается Назад. и т.д.

Как это можно решить? писать метод преобразования кнопки в строку?
0
22 / 22 / 9
Регистрация: 05.02.2013
Сообщений: 90
03.12.2015, 15:09 4
https://ru.wikipedia.org/wiki/ASCII
https://ru.wikipedia.org/wiki/... 0%BE%D0%B4
Насчет Enter. При нажатии клавиши Enter вы получаете char с кодом 13. Но сам Enter - это два char c кодами 13 и что-то еще, по-моему 10. Поэтому обратное преобразование неккоректно. То же с кодами на цифровой клавиатуре.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2015, 15:09
Помогаю со студенческими работами здесь

Вывод на дисплей одного из трех текстовых сообщений, в зависимости от нажатой клавиши.
Здравствуйте. Помогите пожалуйста выполнить задание по Assembler'у. Тема "Программирование внешних...

Передача файла из одного ПК к другому
Мне нужно, чтоб я мог передавать файлы через com порт на другой комп'ютер через програму, но не...

SignalR v2: передача данных от одного пользователя другому
Нужна помощь по SignalR v2, конкретно: Передача данных от js приложения одного пользователя к js...

Передача значения переменных одного класса другому
Всем привет. Нужно передать значения одного класса другому, при этом семантика методов класса...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru