Visual basic. Ik heb een tekstbox gemaakt. alleen cijfers zijn mogelijk. hoe zorg ik ervoor dat het hoogste fijfer 59 is?

Ik gebruik visual basic. ik heb ingesteld dat je alleen cijfers kunt invoeren in een tekstbox. maar ik wil dat het hoogste cijfer 59 is. wie weet hier de code voor?

Weet jij het antwoord?

/2500

Ik neem aan dat het om winforms gaat en dat je al tijdens het intypen wilt controleren. Je kunt het OnChange event afvangen en daarin de validatie doen. Wel tricky, want je moet ook rekening houden met bv. clipboard paste. Misschien is voor jouw probleem een spinbutton wel handiger. Toegevoegd na 13 uur: OK, ik zei OnChange, beter is het KeyPress event. Hiermee kun je namelijk dit event op 'Handled = True' zetten, en onderdruk je het karakter dat op het punt staat toegevoegd te worden. De handler ziet er dan als volgt uit: Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim currentValue, wouldBeValue As String currentValue = TextBox1.Text ' Control chars (pijltjestoetsen, backspace e.d. moeten niet worden tegengehouden If (Not Char.IsControl(e.KeyChar)) Then ' Wat zou de waarde van de textbox worden als dit karakter 'door mag' ' Hou rekening met de caret positie en evt. geselecteerde karakters currentValue = currentValue.Remove(TextBox1.SelectionStart, TextBox1.SelectionLength) wouldBeValue = currentValue.Insert(TextBox1.SelectionStart, e.KeyChar.ToString()) Dim nr As Integer If (Integer.TryParse(wouldBeValue, nr)) Then If (nr > 59) Then ' Met deze keypress wordt het getal te groot, dus niet doorlaten e.Handled = True End If Else ' Geen getal? Dan zeker niet doorlaten e.Handled = True End If End If End Sub Je ziet, niet triviaal omdat je ook de positie van de caret mee moet nemen. Deze code gaat nog steeds mis als je via het clipboard een getal invoert... maar verder doet dit wel wat je wil. De spinbutton heet in VB overigens de NumericUpDown button.

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100