Har 8 st TextBoxar som är Text1(0).Text till Text1(7).Text, problemet är att i TextBox1(3).Text ska det vara postnummer "ex:123 45" inget annat ska var i den boxen. Har försökt med lite kod: Hej Hej jag igen Igen Tack för tipsen. Såg att det blev för snabbt du har rätt med att backspace = 8 , men menade att det ska vara mellanslag, skrev fel. Nu ska jag prova tipsen det ser ut att det är det jag är ute efter.format$ ?
Den har jag kopierat från ett inlägg från SvenPon.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8, 13, 32, 44, 45, 46, 48 To 57 ' 32 är Mellanslag
'om man vill att kommatecken alltid
'skrivs som punkt
If KeyAscii = 46 Then KeyAscii = 32
Case Else
KeyAscii = 0
End Select
End Sub
Det fungerar att det bara är siffror men för det första får jag inte att bara Text1(3).Text reagerar och inte att det blir ett Backspace efter 3 siffran. Har försökt med Mid left men kört fast. Är det någon som kan hjälpa till.
SvenSv: format$ ?
I och med att du har indexerade TextBoxar kommer
din "code" att gälla för alla boxarna.Därför får du skriva så här
If Index = 3 Then
Select Case KeyAscii
Case 8, 13, 32, 48 To 57 ' 32 är Space
Case Else
KeyAscii = 0
End Select
End if
Eftersom du nämnde postnummer har jag tagit bort
punkt komma och minustecken
Vidare är det 8 som är backspace (pil bakåt) 32 är mellanslag
13 = Enter
mvh
SvenSv: format$ ?
En annan finnés som du bör ha med är
TextBoxarnas TabOrder skall ligga i turordning
Användarna är oftast vana att bekräfta inmatningar
med Enter . Därför så här
If Index = 3 Then
Select Case KeyAscii
Case 8, 13, 32, 48 To 57 ' 32 är Space
Case Else
KeyAscii = 0
End Select
End if
If KeyAscii = 13 Then _
SendKeys "{TAB}",True
mvh
SvenSv: format$ ?
Känner mig småinspirerad idag
Ytterligare en detalj du kan lägga in i LostFocus
Om användaren inte slår mellanslag efter
tredje siffran.Vidare begränsa så att han/hon
inte kan mata in mer än 6 tecken
Private Sub TextBox1_LostFocus(Index As Integer)
'Sätt TextBox1(3) MaxLength propertie till 6
If Index = 3 Then
If Len(TextBox1(3)) = 5 Then _
TextBox1(3) = Left$(TextBox1(3), 3) _
& " " & Right$(TextBox1(3), 2)
End If
End Sub
DSSv: format$ ?
:-) Sven