/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Tabindex / TAB Kun den tast???
Fra : jacob christensen


Dato : 28-01-03 09:00

jeg sidder med et projekt hvor kunden gerne vil bruge ENTER i stedet for
tabulatoren, så'en set ærligt nok

min første tanke var keypress & så sætte fokus på næste men når der er
omkring 100 tekst & combo bokse i hele applicationen der skal have denne
funktion, tænkte jeg det må kunne gøres smartere med en general procudure
eller lign

nogle ide'er


vh jacob




 
 
Anton Vestegaard (28-01-2003)
Kommentar
Fra : Anton Vestegaard


Dato : 28-01-03 13:51

http://www.mvps.org/vbnet/index.html?code/screen/keybd_event_sendkeys.htm

"jacob christensen" <jachris@worldonline.dk> skrev i en meddelelse
news:iMqZ9.18$Zq1.9@news.get2net.dk...
> jeg sidder med et projekt hvor kunden gerne vil bruge ENTER i stedet for
> tabulatoren, så'en set ærligt nok
>
> min første tanke var keypress & så sætte fokus på næste men når der er
> omkring 100 tekst & combo bokse i hele applicationen der skal have denne
> funktion, tænkte jeg det må kunne gøres smartere med en general procudure
> eller lign
>
> nogle ide'er
>
>
> vh jacob
>
>
>



Johnny E Jensen (28-01-2003)
Kommentar
Fra : Johnny E Jensen


Dato : 28-01-03 14:53

Hej Jacob

Jeg gør selv flg.

Husk i formen : Form1.KeyPreview = True
Husk også at tabindex på dine kontroller SKAL komme kontinuerligt startes
med 0, 1, 2 ....

I et Module:

Global MyCtrl() As Object
Global txtIdx As Integer
Global txtMin As Integer
Global txtMax As Integer

I Formen:

Private Sub Form_KeyDown(KeyCode As Integer, Shift as Integer)
Select Case KeyCode
Case vbKeyReturn
Loop1:
txtIdx = txtIdx + 1
If txtIdx > txtMax Then txtIdx = txtMin
' Kontroller at kontrollen er visible og enabled
If MyCtrl(txtIdx).Visible = True And MyCtrl(txtidx).Enabled =
True Then
MyCtrl(txtidx).SetFocus
Else
Goto Loop1
End If
End Select
End Sub

Private Sub Form_Load
Dim ctrl as Object
Dim NumObjects As Long

NumObjects = -1
For Each ctrl in Form1.Controlls
If TypeOf ctrl Is TextBox Or TypeOf ctrl is ComboBox Then
NumObjects = NumObjects + 1
End If
Next

redim MyCtrl(NumObjects)

NumObjects = -1
For Each ctrl in Form1.Controlls
If TypeOf ctrl Is TextBox Or TypeOf ctrl is ComboBox Then
Set MyCtrl(ctrl.TabIndex) = ctrl
End If
Next

txtIdx = 0
txtMin = 0
txtMax = NumObjects

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
' For at undgå Beep'et
If KeyAscii = 13 Then KeyAscii = 0
End Sub



Tomas Christiansen (28-01-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 28-01-03 16:45

Jacob Christensen skrev:
> jeg sidder med et projekt hvor kunden gerne vil bruge ENTER i stedet
for
> tabulatoren ... min første tanke var keypress & så sætte fokus på
næste

Hvis man kombinerer din idé og idéerne i de andres forslag, kunne det
f.eks. blive til dette:

Sæt KeyPreview=True på formen og indsæt følgende kode på formen:

Private Const VK_TAB = &H9

Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(vbCr) Then
KeyAscii = 0
keybd_event VK_TAB, 0, 0, 0
End If
End Sub

-------
Tomas


jacob christensen (28-01-2003)
Kommentar
Fra : jacob christensen


Dato : 28-01-03 21:59

tak for gode svar

johnny's svar var lærerigt, men tomas's virker bare

tak drenge

vh jacob



"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:b168gd$1lq7$1@news.cybercity.dk...
> Jacob Christensen skrev:
> > jeg sidder med et projekt hvor kunden gerne vil bruge ENTER i stedet
> for
> > tabulatoren ... min første tanke var keypress & så sætte fokus på
> næste
>
> Hvis man kombinerer din idé og idéerne i de andres forslag, kunne det
> f.eks. blive til dette:
>
> Sæt KeyPreview=True på formen og indsæt følgende kode på formen:
>
> Private Const VK_TAB = &H9
>
> Private Declare Sub keybd_event Lib "user32" _
> (ByVal bVk As Byte, _
> ByVal bScan As Byte, _
> ByVal dwFlags As Long, _
> ByVal dwExtraInfo As Long)
>
> Private Sub Form_KeyPress(KeyAscii As Integer)
> If KeyAscii = Asc(vbCr) Then
> KeyAscii = 0
> keybd_event VK_TAB, 0, 0, 0
> End If
> End Sub
>
> -------
> Tomas
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste