|
| 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
>
| |
|
|