Avatar billede gylling Juniormester
02. januar 2006 - 20:00 Der er 5 kommentarer og
1 løsning

Samme genvejs tast på hver formular

Hvordan skal min kode se ud hvis jeg vil havde den samme genvejstast på forskellige formular med hver deres funktion.
Avatar billede fdata Forsker
03. januar 2006 - 10:33 #1
Det er lidt uklart, hvad det er du er ude efter; men generelt kan man sige:

På formularens egenskaber:
  - Tastgennemsyn sættes til Ja
  - VedTastetryk skal indeholde koden (start evt. med MsgBox KeyAscii så du kan aflæse værdierne)
Avatar billede gylling Juniormester
03. januar 2006 - 18:31 #2
Det er det jeg er ude efter kan du give et eks.
Avatar billede fdata Forsker
03. januar 2006 - 23:05 #3
Jeg er stadig ikke med på, hvad det er du vil.

Skud fra hoften, som giver dig mulighed for at fange kontroltaster (i dette tilfælde variationer over tasten a):

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Dim ShiftDown As Integer
  Dim AltDown As Integer
  Dim CtrlDown As Integer
 
  ShiftDown = (Shift And acShiftMask) > 0
  AltDown = (Shift And acAltMask) > 0
  CtrlDown = (Shift And acCtrlMask) > 0
  Select Case KeyCode
    Case 65          ' a
      If ShiftDown Then
        MsgBox "Du tastede Shift-a"
      Else
        If AltDown Then
          MsgBox "Du tastede Alt-a"
        Else
          If CtrlDown Then
            MsgBox "Du tastede Ctrl-a"
          End If
        End If
      End If
  End Select
  If ShiftDown Or AltDown Or CtrlDown Then KeyCode = 0    ' Send ikke KeyCode videre, hvis kontroltast
End Sub

Bemærk, at koden er flyttet til Form_KeyDown.
Hvis det er helt ved siden af, må du lige forklare, hvad det er du vil.
Vil du fange "almindelige" tegn, kontroltaster, funktionstaster eller hvad?
Avatar billede gylling Juniormester
04. januar 2006 - 18:13 #4
Jeg hvil gerne havde funktions tast og ctrl+noget til aat funger
Avatar billede fdata Forsker
04. januar 2006 - 19:17 #5
Jamen, så er den færdige kontruktion lige her:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Dim ShiftDown As Integer
  Dim AltDown As Integer
  Dim CtrlDown As Integer
 
  ShiftDown = (Shift And acShiftMask) > 0
  AltDown = (Shift And acAltMask) > 0
  CtrlDown = (Shift And acCtrlMask) > 0
  Select Case KeyCode
    Case 65          ' a
      If ShiftDown Then
        MsgBox "Du tastede Shift-a"
      Else
        If AltDown Then
          MsgBox "Du tastede Alt-a"
        Else
          If CtrlDown Then
            MsgBox "Du tastede Ctrl-a"
          End If
        End If
      End If
    Case 112
      MsgBox "Du tastede F1"
    Case 113
      MsgBox "Du tastede F2"
    Case 123
      MsgBox "Du tastede F12"
  End Select
  If KeyCode >= 112 And KeyCode <= 123 Then KeyCode = 0    ' Send ikke KeyCode videre, hvis funktionstast
  If ShiftDown Or AltDown Or CtrlDown Then KeyCode = 0    ' Send ikke KeyCode videre, hvis kontroltast
End Sub

Du kan teste koden ved at oprette en formular (husk at sætte formularens Tastgennemsyn til Ja) med en tekstboks. Kopier så ovenstående kode ind i formularens modul og test ved at taste i tekstboksen.
Avatar billede fdata Forsker
13. januar 2006 - 18:23 #6
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester