Страницы: 1
RSS
Только заглавные буквы
 
Как сделать так чтобы в TextBox можно было вводить только заглавные буквы и русские ? Заранее спасибо огромное за ответ !!!
 
в код обработки событий формы  
 
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
       If KeyAscii < 192 Or KeyAscii > 223 Then KeyAscii = 0  
   End Sub  
   Private Sub TextBox1_P_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  
       If KeyCode = vbKeyV And Shift = 2 Then KeyCode = 0  
   End Sub
 
В textbox1 ничего не вводится. В чем прикол?
 
Тогда давайте пример, объяснять дольше.
 
Влад, я так понимаю, что Armond хотел бы запретить ввод в TextBox любых символов, кроме русских в верхнем регистре (прописных).
 
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
Me.Label1.Caption = KeyAscii  
If KeyAscii < 1040 Or KeyAscii > 1071 Then KeyAscii = 0  
End Sub  
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  
If KeyCode = vbKeyV And Shift = 2 Then KeyCode = 0  
End Sub  
 
Напутал с кодировкой, сейчас должно работать.
 
См.файл
 
В Вашем примере допускается ввод латиницы, а автор просил только RU
 
Да нет вроде...
 
Влад, я это не Вам. Я про пример АБВ :-)
 
{quote}{login=VovaK}{date=17.10.2009 06:05}{thema=}{post}Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
Me.Label1.Caption = KeyAscii  
If KeyAscii < 1040 Or KeyAscii > 1071 Then KeyAscii = 0  
End Sub  
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  
If KeyCode = vbKeyV And Shift = 2 Then KeyCode = 0  
End Sub  
 
Напутал с кодировкой, сейчас должно работать.{/post}{/quote}  
 
 
Но так вообще не позволяет вводить символы в TextBox, пока шифт не нажмешь, а можно сделать так чтобы просто вводились заглавные буквы, не нажимая никаких дополнительных клавиш
 
Private Sub TextBox1_Change()  
   If Me.TextBox1 <> UCase(Me.TextBox1) Then Me.TextBox1 = UCase(Me.TextBox1)  
End Sub
 
Наверное уже потеряло актуальность, но всё же с поддержкой Ё есть проблемы, кроме того если не нажимая ничего кроме поддрежки русского шрифта, то можно так вопрос решить:  
 
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
   Select Case KeyAscii  
   Case 1105  
       KeyAscii = KeyAscii - 80  
   Case 1072 To 1103  
       KeyAscii = KeyAscii - 32  
   Case Else  
       KeyAscii = 0  
   End Select  
End Sub  
 
Кроме того я не вижзу смысла в ключать в код вторую подпрограмму с KeyCode, может быть кто-нибудь пояснит мне для чего она здесь.
Страницы: 1
Читают тему
Наверх