/ 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
Shortcut (Eks. CTRL+B) i form...
Fra : Thomas Larsen


Dato : 04-02-02 19:00

Hej NG!

I forbindelse med programering af noget database interface, har jeg brug for
at kalde en søgefundktion vha. af en shortcut (CTRL+B), uanset hvor i min
form jeg står. Dvs. jeg vil aktivere søgningen for netop det felt jeg står
i.

Skal jeg lave en keyUp/down event for hver textboks (Data felt) jeg har? Jeg
synes ikke rigtig det virker med en keyup/down event til hele min form?

Kan nogen hjælpe?

Mvh.
Thomas



 
 
Jens Vestergaard (04-02-2002)
Kommentar
Fra : Jens Vestergaard


Dato : 04-02-02 19:34

"Thomas Larsen" <test@test.dk> skrev i en meddelelse
news:3c5ecc2a$0$17382$4d4eb98e@read.news.dk.uu.net...
> Hej NG!
>
[snip]
> Skal jeg lave en keyUp/down event for hver textboks (Data felt) jeg har?
Jeg
> synes ikke rigtig det virker med en keyup/down event til hele min form?
>

Sæt formens KeyPreview = True - herefter fanger formen alle key-events inden
den aktive kontrol.

--
mvh
Jens Vestergaard
www.railsoft.dk



Rayman (10-02-2002)
Kommentar
Fra : Rayman


Dato : 10-02-02 00:21

Og husk at Preview skal forstås sådan at hvis der trykkes f.eks CTRL+C, så
fanger formen godtnok trykket, men det gør den aktive kontrol også
bagefter...
Hvordan man undgår det, ved jeg ikke, men jeg tror ikke det er muligt...

"Jens Vestergaard" <j@railsoft.dk> wrote in message
news:3c5ed39d$0$226$edfadb0f@dspool01.news.tele.dk...
> "Thomas Larsen" <test@test.dk> skrev i en meddelelse
> news:3c5ecc2a$0$17382$4d4eb98e@read.news.dk.uu.net...
> > Hej NG!
> >
> [snip]
> > Skal jeg lave en keyUp/down event for hver textboks (Data felt) jeg har?
> Jeg
> > synes ikke rigtig det virker med en keyup/down event til hele min form?
> >
>
> Sæt formens KeyPreview = True - herefter fanger formen alle key-events
inden
> den aktive kontrol.
>
> --
> mvh
> Jens Vestergaard
> www.railsoft.dk
>
>



Tomas Christiansen (10-02-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 10-02-02 22:22

Rayman skrev:
> Og husk at Preview skal forstås sådan at hvis der trykkes f.eks
CTRL+C, så
> fanger formen godtnok trykket, men det gør den aktive kontrol også
> bagefter...
> Hvordan man undgår det, ved jeg ikke, men jeg tror ikke det er
muligt...

Kunne man ikke "lege" lidt med at kigge på KeyCode i Form_KeyDown
og/eller KeyAscii i Form_KeyPress, og i visse situationer sætte
KeyCode og/eller KeyAscii til 0 for at eliminere at "trykket" kommer
videre til den aktive kontrol?

Husk blot at har man textbox kaldet Text1 aktiv, vil events ved f.eks.
tryk på Enter komme i følgende rækkefølge:

Form_KeyDown
Text1_KeyDown
Form_KeyPress
Text1_KeyPress

Bemærk at selvom KeyCode sættes til 0 i Form_KeyDown, vil
Form_KeyPress stadig blive udført - der skal altså ofte OGSÅ være en
behandling af tastetrykket her.

-------
Tomas


Rayman (11-02-2002)
Kommentar
Fra : Rayman


Dato : 11-02-02 14:23

Den hedder netop preview, fordi at selvom du ændrer den, så får den aktive
kontrol, det oprindelige, og derudover, så får en textbox også en CTRL+C,
uden at du kan gøre noget ved det. Og lige til sidst, så indgår KeyPress()
ikke i Preview henseende...

"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:a46o9b$1pkl$1@news.cybercity.dk...
> Rayman skrev:
> > Og husk at Preview skal forstås sådan at hvis der trykkes f.eks
> CTRL+C, så
> > fanger formen godtnok trykket, men det gør den aktive kontrol også
> > bagefter...
> > Hvordan man undgår det, ved jeg ikke, men jeg tror ikke det er
> muligt...
>
> Kunne man ikke "lege" lidt med at kigge på KeyCode i Form_KeyDown
> og/eller KeyAscii i Form_KeyPress, og i visse situationer sætte
> KeyCode og/eller KeyAscii til 0 for at eliminere at "trykket" kommer
> videre til den aktive kontrol?
>
> Husk blot at har man textbox kaldet Text1 aktiv, vil events ved f.eks.
> tryk på Enter komme i følgende rækkefølge:
>
> Form_KeyDown
> Text1_KeyDown
> Form_KeyPress
> Text1_KeyPress
>
> Bemærk at selvom KeyCode sættes til 0 i Form_KeyDown, vil
> Form_KeyPress stadig blive udført - der skal altså ofte OGSÅ være en
> behandling af tastetrykket her.
>
> -------
> Tomas
>



Tomas Christiansen (12-02-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 12-02-02 09:19

Rayman skrev:
> Den hedder netop preview, fordi at selvom du ændrer den, så får den aktive
> kontrol, det oprindelige, og derudover, så får en textbox også en CTRL+C,
> uden at du kan gøre noget ved det.

Jeg forstår ganske enkelt ikke hvad du mener med dette. Hvis jeg har sat KeyPreview til True på formen og har en textbox kaldet
Text1 vil følgende kode:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Form_KeyDown " & KeyCode
If KeyCode = 49 Then KeyCode = 0
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
Debug.Print "Form_KeyPress " & KeyAscii
If KeyAscii = 49 Then KeyAscii = 0
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Text1_KeyDown " & KeyCode
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print "Text1_KeyPress " & KeyAscii
End Sub

resultere i at INGEN events bliver "ført videre" til Text1, når der trykkes på 1-tallet (ASCII kode 49).

Fjernes If-sætningen i Form_KeyDown, vil Text1_KeyDown blive udført, og fjernes if-sætningen i Form_KeyPress vil Text1_KeyPress
blive udført.

Var det ikke det, som var målet?

Bemærk at testen er udført på en VB 6.0 med SP5 installeret på en Window 2000 Pro og på en Windows NT 4.0 PC.


> Og lige til sidst, så indgår KeyPress()
> ikke i Preview henseende...

Ikke forstået???

-------
Tomas


Rayman (12-02-2002)
Kommentar
Fra : Rayman


Dato : 12-02-02 11:00

Det har du helt ret i, følgende kode vil helt fjerne kald til text1. Det som
gjorde at jeg misforstod funktionen opstår, når du har en textbox og i
KeyDown sætter KeyCode = 0, så vil nogle af tastetrykkene forsvinde, mens
andre er helt upåvirkede, f.eks bliver "del" knappen opsnappet, mens "1"
ikke bliver det...

Undskyld for misforståelsen.....

Mvh. Rayman...


Option Explicit

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Form KeyCode: " & KeyCode
KeyCode = 0
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
Debug.Print "Form KeyPress: " & KeyAscii
KeyAscii = 0
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Text1 KeyCode: " & KeyCode
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print "Text1 KeyPress: " & KeyAscii
End Sub



"Tomas Christiansen" <toc@blikroer.dk.removethis> wrote in message
news:a4aj6i$1cri$1@news.cybercity.dk...
> Rayman skrev:
> > Den hedder netop preview, fordi at selvom du ændrer den, så får den
aktive
> > kontrol, det oprindelige, og derudover, så får en textbox også en
CTRL+C,
> > uden at du kan gøre noget ved det.
>
> Jeg forstår ganske enkelt ikke hvad du mener med dette. Hvis jeg har sat
KeyPreview til True på formen og har en textbox kaldet
> Text1 vil følgende kode:
>
> Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
> Debug.Print "Form_KeyDown " & KeyCode
> If KeyCode = 49 Then KeyCode = 0
> End Sub
>
> Private Sub Form_KeyPress(KeyAscii As Integer)
> Debug.Print "Form_KeyPress " & KeyAscii
> If KeyAscii = 49 Then KeyAscii = 0
> End Sub
>
> Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
> Debug.Print "Text1_KeyDown " & KeyCode
> End Sub
>
> Private Sub Text1_KeyPress(KeyAscii As Integer)
> Debug.Print "Text1_KeyPress " & KeyAscii
> End Sub
>
> resultere i at INGEN events bliver "ført videre" til Text1, når der
trykkes på 1-tallet (ASCII kode 49).
>
> Fjernes If-sætningen i Form_KeyDown, vil Text1_KeyDown blive udført, og
fjernes if-sætningen i Form_KeyPress vil Text1_KeyPress
> blive udført.
>
> Var det ikke det, som var målet?
>
> Bemærk at testen er udført på en VB 6.0 med SP5 installeret på en Window
2000 Pro og på en Windows NT 4.0 PC.
>
>
> > Og lige til sidst, så indgår KeyPress()
> > ikke i Preview henseende...
>
> Ikke forstået???
>
> -------
> Tomas
>



preben nielsen (04-02-2002)
Kommentar
Fra : preben nielsen


Dato : 04-02-02 19:44


"Thomas Larsen" <test@test.dk> skrev i en meddelelse
news:3c5ecc2a$0$17382$4d4eb98e@read.news.dk.uu.net...

> Skal jeg lave en keyUp/down event for hver textboks (Data
felt) jeg har? Jeg
> synes ikke rigtig det virker med en keyup/down event til
hele min form?
>
> Kan nogen hjælpe?

sæt formens KeyPreview til SAND


--

/\ preben nielsen
\/\ prel@post.tele.dk



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

Månedens bedste
Årets bedste
Sidste års bedste