МОЖЕ ЛИ ?
1 отговора
69 прегледа
МОЖЕ ЛИ ?
ЗА VBA
Може ли и ако ДА как трябва да стане при запис в ТЕХТBOX или друг вид поле предварително да се укаже на каква клавиатура да се извърши записа на латиница или на кирилица.
Благодаря.
Може ли и ако ДА как трябва да стане при запис в ТЕХТBOX или друг вид поле предварително да се укаже на каква клавиатура да се извърши записа на латиница или на кирилица.
Благодаря.
Re: МОЖЕ ЛИ ?
За VB или VBA не съм много сигурен как трябва да стане, защото определено старото поколение на VB до 6.0 има проблеми с обръщането на символ Unicode код, който да е според съответната таблица. Имаше една доста широка тема по въпроса и аз постнах едно вузможно решение, това е темата:
[линк]
Определено начина е много неудобен и сложен. В новото поколение VB.NET вече нияма никакви проблеми относно това решение. Има си всичко! Освен това има валидейшън контроли, които се слагат на текстови кутии и те ограничават въвеждането на много неща, както и на това ако пожела разработчика.
Може също да се опиташ да обърнеш в обикновен ASCII символ кодът от клавиатурата и да видиш каква стойност ти се връща. С няколко опита ще събереш някакъв работещ код, но няма да е много добро решение и не мисля, че ще обхваща всички възможни варянти на въвеждане. Пробвай нещо от рода на това:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("You can input keys only in this area: (0-9)")
Exit Sub
End If
End Sub
Ако ползваш този пример и си поиграеш малко с примерът от другата тема може да се получи и нещо сносно. Ако не, пробвай само с ASCII символи да излезнеш от положението.
[линк]
Определено начина е много неудобен и сложен. В новото поколение VB.NET вече нияма никакви проблеми относно това решение. Има си всичко! Освен това има валидейшън контроли, които се слагат на текстови кутии и те ограничават въвеждането на много неща, както и на това ако пожела разработчика.
Може също да се опиташ да обърнеш в обикновен ASCII символ кодът от клавиатурата и да видиш каква стойност ти се връща. С няколко опита ще събереш някакъв работещ код, но няма да е много добро решение и не мисля, че ще обхваща всички възможни варянти на въвеждане. Пробвай нещо от рода на това:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("You can input keys only in this area: (0-9)")
Exit Sub
End If
End Sub
Ако ползваш този пример и си поиграеш малко с примерът от другата тема може да се получи и нещо сносно. Ако не, пробвай само с ASCII символи да излезнеш от положението.