Dumbo Skrevet 10. september 2002 Del Skrevet 10. september 2002 Jeg holder på å lage en kalkulator, bare for å få litt øvelse i VB og slikt. Jeg har tenkt å "binde" tall-tastene til tall slik at man ikke trenger å stå i tekstboksen å skrive. Kan jeg få disse til å fungere uansett hvilket object som har "Focus" ? Prøvde meg litt frem, slik at det ble: Code: Private Sub Command1_Click() Command2.SetFocusEnd Sub Dette gjør at den setter focus til txt_svar. Der har jeg lagt inn dette: Code: Private Sub Command2_KeyPress(KeyCode As Integer) If KeyCode = 31 Then Text1.Text = "1" End IfEnd Sub Men dette ser ikke ut til å virke.. Hvordan skal jeg gjøre dette ? Kan det legges en plass slik at den oppfatter "KeyPress" og utfører dem? Gi gjerne links til tutorials og slike ting. Lenke til kommentar
Rep Skrevet 10. september 2002 Del Skrevet 10. september 2002 Det enkleste du kan gjøre er å gå på Properties til Formen din og sette KeyPreview = True. Da vil alle tastetrykk komme til formens KeyPress, uansett hvilket objekt som har fokus. F.eks: Private Sub Form_KeyPress(KeyAscii As Integer) 'Sjekker om tasten som er trykket er numerisk If IsNumeric(Chr(KeyAscii)) Then Text1.Text = Text1.Text & Chr(KeyAscii) ElseIf ... bla bla End If End Sub Lenke til kommentar
KriStang Skrevet 12. april 2003 Del Skrevet 12. april 2003 Du kan også: Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = (-16) Const ES_NUMBER = &H2000& Public Sub SetNumber(NumberText As TextBox, Flag As Boolean) Dim curstyle As Long, newstyle As Long 'retrieve the window style curstyle = GetWindowLong(NumberText.hwnd, GWL_STYLE) If Flag Then curstyle = curstyle Or ES_NUMBER Else curstyle = curstyle And (Not ES_NUMBER) End If 'Set the new style newstyle = SetWindowLong(NumberText.hwnd, GWL_STYLE, curstyle) 'refresh NumberText.Refresh End Sub Private Sub Form_Load() ' Isteden for Text1 skriv inn navnet på den tekstboksen du skal gjøre om ' til numretisk SetNumber Text1, True End Sub Nå kan ikke brukeren skrive inn bokstaver i tekstboksen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå