Springen naar inhoud


- - - - -
VS 2015

Help Nodig Bij Textbox Begrenzen Tot Bepaalde Input.

VS2015

  • Log in a.u.b. om te beantwoorden
Er zijn 7 reacties in dit onderwerp

#1 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4375 berichten
    Laatst bezocht vandaag, 09:25
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 01 november 2017 - 19:45

Het volgende wil ik bereiken maar weet niet hoe.
Ik heb een textbox waarin alleen een F-nummer in geaccepteerd mag worden ook al zou bv. B12345678 getypt worden dat hij dit niet toont , maar pas als het nummer met een F begint.
Tevens mag dat geheel niet groter zijn 10 cijfers/letters, dus bv.: F104C90115 word geaccepteerd, vergeet je een letter/cijver dan moet die een melding geven.

Kan mij iemand daarbij helpen aub.

Alvast bedankt.

[Update]

Begrenzen heb ik voor elkaar, bleek gewoon een optie in eigenschappen te zijn die ik kan aanpassen.
En die ander heb ik ook maar als er betere oplossingen zijn hoor ik die graag.

Visual Basic Code:
  Dim charactersDisallowed1 As String = "abcdefghijklmnopqrstuvwxyzAEGHIJKLMNOPQRSTUVWXYZ"

		Dim theText1 As String = txtBatchNr.Text
		Dim Letter1 As String
		Dim SelectionIndex1 As Integer = txtBatchNr.Selectionstart
		Dim Change1 As Integer

		For x As Integer = 0 To txtBatchNr.Text.Length - 1
			Letter1 = txtBatchNr.Text.Substring(x, 1)
			If charactersDisallowed1.Contains(Letter1) Then
				theText1 = theText1.Replace(Letter1, String.Empty)
				Change1 = 1
			End If
		Next

		txtBatchNr.Text = theText1
		txtBatchNr.Select(SelectionIndex1 - Change1, 0)


#2 Hansiebebe

Hansiebebe

    Professional Developer

  • Leden
  • PipPipPipPip
  • 327 berichten
    Laatst bezocht 15 jun 2018 22:05

Geplaatst op 03 november 2017 - 10:21

of denk ik nou te eenvoudig ?
Code:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
		If Strings.Left(TextBox1.Text, 1) <> "F" Then
			TextBox1.Clear()
		End If
	End Sub



#3 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht vandaag, 09:43
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 03 november 2017 - 12:45

Regex lijkt me beter, kun je geheel aanpassen aan je vereiste.
Ik ben zelf geen regex expert, maar onderstaande in een functie gieten met als return true/false moet lukken.

Visual Basic Code:

Imports System.Text.RegularExp ressions

Public Class Example
Public Shared Sub Main()
Dim pattern As String = "^[F][a-zA-Z0-9]{9}"
Dim input As String = "F104C90115"

For Each m As Match In Regex.Matches(input, pattern)
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index)
Next
End Sub
End Class



#4 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 638 berichten
    Laatst bezocht 10 jun 2018 15:03
  • LocatieMechelen (BE)

Geplaatst op 03 november 2017 - 20:53

Zoiets:
Visual Basic Code:
public function CheckFnumber(byval input as string) as boolean
dim m as match = Regex.Match(input, "^[F][a-zA-Z0-9]{9}")
return m.Success
end function


#5 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4375 berichten
    Laatst bezocht vandaag, 09:25
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 08 november 2017 - 20:25

thx mensen, zal in het weekend eens verder erna kijken, nu helaas iets te weinig tijd :?

#6 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 663 berichten
    Laatst bezocht 28 jan 2018 21:10

Geplaatst op 12 november 2017 - 15:57

Visual Basic Code:
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim plaats As Char
Dim gegevens As String
Dim aantaltekens As Integer
gegevens = TextBox1.Text
aantaltekens = gegevens.Length
plaats = gegevens.Chars(0)

If plaats <> "F" Then 'Eerste letter moet F zijn
MessageBox.Show("eerste letter moet een F zijn")
TextBox1.Clear()
End If

If aantaltekens > 9 Then 'Niet meer dan 10 tekens
MessageBox.Show("Niet meer dan 10 tekens")
End If

If aantaltekens < 9 Then 'Niet minder dan 10 tekens
MessageBox.Show("Een teken of tekens te weinig")

End If
End Sub

Veranderd door pluto, 12 november 2017 - 16:00.


#7 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 638 berichten
    Laatst bezocht 10 jun 2018 15:03
  • LocatieMechelen (BE)

Geplaatst op 13 november 2017 - 02:45

Ik zou geen clears doen, gebruikers hebben dat niet graag :) ook kun je de code anders bouwen.

Visual Basic Code:
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If textbox1.text.char(0).tostring <> "F" Then 'Eerste letter moet F zijn
MessageBox.Show("De eerste letter moet een F zijn")
exit sub
End If

If textbox1.Length <> 10 Then 'Niet meer dan 10 tekens
MessageBox.Show("Het aantal tekens is niet gelijk aan 10")
exit sub
End If

'doe de rest
End Sub
maar ik zou toch de regex aanraden

#8 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1031 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 13 november 2017 - 14:52

Bericht bekijkenDamic, op 13 november 2017 - 02:45, zei:

Ik zou geen clears doen, gebruikers hebben dat niet graag

Akkoord.

Ik zou ook geen MessageBox gebruiken, maar een statusbar of andere discrete manier om te zeggen wat er allemaal fout is.

Ik zou de validatie doen voor alle regels ineens zodanig dat je in 1 boodschap kan zeggen wat er allemaal fout is.

En als die knop dient om te bevestigen of een submit te doen, zou ik die disabelen zolang de input fout is.

Bericht bekijkenDamic, op 13 november 2017 - 02:45, zei:

maar ik zou toch de regex aanraden
Ik niet.
Gewoon de regels uitschrijven in code is veel duidelijk voor iedereen.
Is ook makkelijker te onderhouden als de regels wijzigen of worden uitgebreid.
Zeker voor mensen die regex-analfabeten zijn, of slechts sporadisch met regex werken en dus moeten opzoeken wat de regels zijn of  gewoon een grondige afkeer hebben van regex (ik zelf hoor bij minstens twee van deze drie categorie├źn).





Ook met taq VS 2015, VS2015 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2015] Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)