Keresés

Új hozzászólás Aktív témák

  • Fferi50

    Topikgazda

    válasz KaliJoe #24978 üzenetére

    Szia!

    A userformon nem hatásos az application.enableevent=false.
    Ott csak trükkösen lehet megkerülni az eseménylefutást. Egy form szintű változót kinevezel eseményvezérlőnek, ha ez true, akkor fusson le az esemény, ha false akkor ne fusson le. Minde eseménykezelésnél ennek a változónak a vizsgálatával kezded a projektet.

    DE: Javaslom még mindig, hogy Textbox_KeyDown eseményt nézd meg, itt a keycode megmondja, hogy melyik billentyűt nyomták le.
    A backspace keycodja a vbKeyBack vba konstans,ami numerikusan 8.

    A billentyűk Keycode megfeleltetését a help Keycode Constants cimszava alatt találod.

    Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
    if KeyCode=vbKeyBack then
    ide írod amit szeretnél csinálni ha BackSpace-t nyomtak.
    endif
    KeyCode=0
    end sub

    Az utolsó sor, a KeyCode=0 a lényeg, ezzel eliminálod a billentyű leütést! Minden olyan esetben kell, ha nem akarod, hogy a leütött billentyű hatása érvényesüljön!
    (Pl. te beírod a textboxba a leütött betűt, vagy lecsökkented a hosszát, akkor már nem szabad, hogy a rendszer is megcsinálja ugyanazt!)
    Ha meg kell, hogy csinálja a rendszer, akkor ezt a sort elhagyod.

    Hidd el, ez a legegyszerűbb megoldás a billentyűzet figyelésre. A change az macerás. Rengeteg hasznos info van a Help-ben. (A szokásostól eltérően.)

    Üdv.

Új hozzászólás Aktív témák

Hirdetés