Teach Me A Table

Status
Niet open voor verdere reacties.
@CaptainBri, er moeten juist wél cijfers in...

@JoZ1, kan jij vertellen (per regel) wat jouw code doet? Ik hou ervan om de code te begrijpen :P
 
Laatst bewerkt:
Code:
Private Sub OnlyNumbers()

        'Als het geactiveerde component een TextBox is dan....
        If TypeName(Me.ActiveControl) = "TextBox" Then

            'Dit is zodat je niet steeds Me.ActivateControl.Text hoeft te typen maar .Text kunt zeggen
            With Me.ActiveControl

                'Als de tekst geen getallen zijn en ook niet niets dan...
                If Not IsNumeric(.Text) And .Text <> vbNullString Then
                 
                    'Haalt laatste teken weg
                    .Text = .Text.Substring(0, .Text.Length - 1)
                End If
            End With
        End If
    End Sub

Code:
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

'Roept de vorige functie aan als de tekst in TextBox1 veranderd.
        OnlyNumbers()
    End Sub

Snap je 't? :)
 
Beetje vreemde code, JoZ, ik zou het gewoon zo doen:

Code:
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress 'Meerdere textboxen kunnen hier

        If (e.KeyChar < "0" Or e.KeyChar > "9") And Not e.KeyChar = vbBack Then
            e.Handled = True
        End If

    End Sub
 
Waarom een beetje vreemd? Er zijn meerdere wegen die naar Rome leiden.
 
Laatst bewerkt door een moderator:
Ik bedoel, ik vind je code een beetje teveel toeters en bellen hebben.
Waarom kijken of het type control een textbox is? Natuurlijk gaat het hier om alleen textboxen.
En waarom kijken of deze actief is? Natuurlijk is deze actief als je er tekst in gaat voeren.

Ik denk dat mijn keypress subje netter is.
 
wat doet die van jou precies the mighty atom? (Die is wel makkelijker ja:P)
 
Ik bedoel, ik vind je code een beetje teveel toeters en bellen hebben.
Waarom kijken of het type control een textbox is? Natuurlijk gaat het hier om alleen textboxen.
En waarom kijken of deze actief is? Natuurlijk is deze actief als je er tekst in gaat voeren.

Dat maakt de kans op verkeerd gebruik van m'n code kleiner. En qua grootte maakt het ook niet veel uit. Deze functie hoeft namelijk maar 1 keer ingevoerd te worden.
 
Mijn code checked of er een getal tussen de 0 en de 9 is ingedrukt. Is dat het geval, dan verschijnt het ingedrukte getal in de textbox. Typ je iets anders dat geen getal is, bijvoorbeeld een letter of teken, gebeurt er niks. De code laat naast getallen ook de backspace (vbBack) door zodat dat je terug kan gaan als je een typfout zou maken.
 
Ok. Maar er meoten ok getallen al 63 in kunnen. Of checkt hij dat per teken dat word ingevoerd??
Moet je dat onder elke textbox zetten?
 
Leg dat nog eens uit.

"Maar er meoten ok getallen al 63 in kunnen."

Je bent het toch zeker wel met me eens dat dat geen zin is, of wel soms? :P
 
Nee wel sirieus want je zegt zelf dat hij controleer of er een getal tussen de 0 en 9 word ingedrukt... Maar controleer hij dat per getal, of als totaal getal?
 
Elk getal dat je indrukt, dus per getal.

Het is niet zo dat bijvoorbeeld het getal 12 niet geaccepteert wordt.
Hij kijkt of je een cijfer indrukt dat tussen de 0 en de 9 ligt, hij checked niet of het getal dat je invoert hoger is dan 9.
 
@Luuknl: test het anders even. Dan weet je het precies.
 
Ik heb besloten om te stoppen met het maken van dit programma aangezien ik nu bezig ben met een leuker en voor mij zelf leerzamer project. Dus bij deze is 'ie opgelost ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan