Hirdetés

Keresés

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

  • Átvihető, csak át kellene adni neki.
    A változók a VB-ben nem globálisak (hacsak nem annak lettek definiálva), a hatókörük csak az adott szerkezetre (szubrutinra, osztályra) vonatkozik.
    így add át neki:
    Sub csakszam(tb As TextBox, kc As Integer)
    '8: backspace, 9: tabulátor, 13: enter, 17: Ctrl, 32: space, 46: delete, 48-57: felső számok, 86: v, 96-105: numpad számok, 109: numpad mínuszjel, 110: numpad pont, 186: é, 187: ó,
    '188: vessző, 189: kötőjel, 190: pont, 191: ü, 192: ö, 219: ő, 220: ű, 221: ú, 222: á, 226:í
    If kc = 8 Or kc = 46 Or _
    (kc >= 48 And kc <= 57) _
    Or (kc >= 96 And kc <= 105) Then
    tb.Locked = False
    Else
    tb.Locked = True
    End If
    End Sub

    Amúgy miért locked, ennek így semmi értelme nincs???

    Én inkább a Changed-et használnám és megvizsgálnám, hogy az összes karakter érvényes-e (vagy egyszerűen használnék masked textbox-ot)...

    AE

    szóval, itt több rendbeli félreértés van.
    1. maga a KeyCode úgy tűnik, nem vihető át, mert rendszerváltozó, hiába teszem public-ká, akkor is üres lesz, amint másik sub-ba ugrok. természetesen tudom, hogy egy felhasználói publikus változóba kiíratva átvihető, alkalmaztuk is, csak reménykedtünk, hátha mégis lehet az eredetit használni, merthogy úgyis azt kínálja fel a rendszer, mikor egy új keydown subot létrehozol. megspóroltunk volna egy saját változót, meg minden ilyen subban egy plusz sort.
    2. honnan jön a tb változó? mert mi pont azt szeretnénk megspórolni, hogy minden keydown subban konkrétan (az adott vezérlő nevével/indexével) értéket kelljen neki adni. mivel ez esetben ez a rész mindegyik subban eltérő lesz, azaz nem lehet simán másolni, oda kell figyelni.
    magyarul én a set tb=TextBox1 helyett a set tb=ActiveControl kifejezést szeretném használni, mert ez univerzális. csakhogy nem működik, mert az ActiveControl a VB szerint nem a TextBox1, amiben épp kavarok, hanem a MultiPage1. ez a problem.
    3. A "Locked"-nek az az értelme, hogy így egyszerűen nem íródik be a textboxba a hibás karakter, és passz, megy tovább.
    4. "Changed" az mi? Én nem találom. Ha a "Change"- re gondolsz, akkor azért a KeyDown-ból megy az egész, és nem a Change-ből, mert a KeyDown még a karakter megjelenése _előtt_ lefut, a Change meg csak utána (tehát ott már csak törölni tudnék).

    masked textbox hogy megy? a Format()-ra gondolsz?

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