Avatar billede johnk Nybegynder
28. oktober 2002 - 14:27 Der er 19 kommentarer og
1 løsning

tasten tab

Er der nogle måde man kan finde ud af om brugeren kan trykket på tasten 'tab'
Jeg har prøvet keypresse og den fanger den ikke. Jeg har kan skal bruge det, hvis en bruger tab'er til næste felt
Avatar billede ocp Nybegynder
28. oktober 2002 - 14:35 #1
Brug Keydown

Check for værdien 9.
Avatar billede johnk Nybegynder
28. oktober 2002 - 14:39 #2
Det virker ikke
og se hvad manual skriver
KeyDown and KeyUp aren't invoked for:

The ENTER key if the form has a CommandButton control with the Default property set to True.


The ESC key if the form has a CommandButton control with the Cancel property set to True.


The TAB key.
Avatar billede ocp Nybegynder
28. oktober 2002 - 14:48 #3
Du bliver nødt til at lave det for samtlige textbox'e på din form. Det letteste er hvis du laver textboxene til et controlarray.
Avatar billede ocp Nybegynder
28. oktober 2002 - 14:49 #4
Ups... du har jo ret. Jeg vender lige tilbage om lidt.
Avatar billede ocp Nybegynder
28. oktober 2002 - 14:50 #5
Kan du bruge "lostfocus" i stedet?
Avatar billede johnk Nybegynder
28. oktober 2002 - 14:59 #6
ja jeg bruger iøjeblikket lostfocus; men jeg ved ikke om brugeren taster på tab eller en knap.
Jeg har en række text-felter bruger kan indtaste i og brugeren ser så en del af disse ad gangen. Brugeren kan så scrolle eller tabbe nedad til det næste felt.
Problemet opstår så når brugeren tabber på det nederst synlig felt, vil jeg jo gerne kunne rykke felterne op så brugeren kan se det næste felt; men cursoren forsvinder ud af skærmen.
Jeg har alle mine indtastningsfelter i en picbox og scrollbar. Antallet af text-felter er dynamisk afhængig af nogle andre ting
Avatar billede ocp Nybegynder
28. oktober 2002 - 15:08 #7
Kan du så ikke bruge GotFocus-eventen til at styre din automatiske scrolling?
Avatar billede johnk Nybegynder
28. oktober 2002 - 15:27 #8
det vil jeg undersøge; men hvordan finder jeg ud af om det 'nye' felter er synligt for brugeren eller ej så jeg ved om jeg overhovedet skal scrolle eller ej ???? Top er jo ift til cotaineren og ikke ift til skærmen
Avatar billede ocp Nybegynder
28. oktober 2002 - 15:31 #9
if Container.Top + Control.Top + Control.Height > form.height then
  msgbox "Kontroller er usynglig"
end if
Avatar billede johnk Nybegynder
28. oktober 2002 - 15:39 #10
Når jeg kører det for det 'øverste' felt (som står midt på brugerens side), ser tallene således og dermed aftid er opfyldt
240+1+245745 > 11640
Avatar billede ocp Nybegynder
28. oktober 2002 - 15:50 #11
Når jeg skrive Control skal du altså sætte textboxens navn ind. Ellers er det en MEGET høj textbox.
Avatar billede johnk Nybegynder
28. oktober 2002 - 16:00 #12
Koden direkte se således ud
If picscroll.top + txt_total(Index).top + txt_total(index).Height > frm_indtastning.Height Then
      MsgBox "Kontroller er usynlig"
  End If
jeg havde læst forkert *S*
Tallene ser således ud nu
240+1+24 > 11640 for det først felt
240 + 301 + 24 > 11640 første gang den skal scroll og dermed kommer msgbox'en ikke
Avatar billede ocp Nybegynder
28. oktober 2002 - 16:11 #13
Hmmm... Check lige at ScaleMode er sat twips på formen.
Avatar billede johnk Nybegynder
28. oktober 2002 - 16:15 #14
Under properties for formen, står der 1-Twip
Avatar billede ocp Nybegynder
29. oktober 2002 - 10:41 #15
Kan du sende projektet til mig?
Avatar billede ocp Nybegynder
29. oktober 2002 - 10:41 #16
mailto:anonymanonym715@hotmail.com
Avatar billede johnk Nybegynder
29. oktober 2002 - 10:54 #17
Jo men dels er MEGET stort VB program og dels bruger det SQL
Jeg laver lige et testprogram og sender det til dig
Avatar billede johnk Nybegynder
29. oktober 2002 - 11:25 #18
Jeg har nu sendt en testversion til dig
Avatar billede ocp Nybegynder
29. oktober 2002 - 13:06 #19
I forhold til den testkode du har sendt mig kan det laves sådan her:

Private Sub txt_indtast_GotFocus(Index As Integer)

    Dim txt As TextBox
    Set txt = txt_indtast(Index)
   
    'Vi bestemmer om textboxen rager nedenud af framen
    If (txt.Top + txt.Height) > (Frame1.Height - Picture1.Top) Then
        'Sørg for at boksens underkant flugter med framens
        Picture1.Top = Picture1.Top - ((txt.Top + txt.Height) - (Frame1.Height - Picture1.Top))
    ElseIf Picture1.Top + txt.Top < 0 Then
        'Hvis tekstboksen er *over* det synlige område skal vi justere picture1
        Me.Caption = Picture1.Top & " " & txt.Top
        Picture1.Top = Picture1.Top - (Picture1.Top + txt.Top)
    End If

End Sub
Avatar billede johnk Nybegynder
29. oktober 2002 - 16:10 #20
Det ser ud som om det virker meget godt så tak for hjælpen

John
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
Kurser inden for grundlæggende programmering

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