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
  • 4335 berichten
    Laatst bezocht 19 nov 2017 09:53
  • 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)

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#2 Hansiebebe

Hansiebebe

    Professional Developer

  • Leden
  • PipPipPipPip
  • 300 berichten
    Laatst bezocht gisteren, 22:49

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


What is, That is

#3 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3577 berichten
    Laatst bezocht vandaag, 17:41
  • 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


*** Vergeet ons geen bezoekje te brengen op facebook ***

 

- Any fool can know, the point is to understand -


RedThread@vbib.be

 

Huisregels | Tutorials | VS 2017 Community | Keybinding Posters | Code Tags gebruiken | MSDN


#4 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 602 berichten
    Laatst bezocht 18 nov 2017 17:52
  • 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
  • 4335 berichten
    Laatst bezocht 19 nov 2017 09:53
  • 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 :?

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#6 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 657 berichten
    Laatst bezocht 12 nov 2017 16:01

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
  • 602 berichten
    Laatst bezocht 18 nov 2017 17:52
  • 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

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 959 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).
Trust me, I have no idea what I'm talking about.





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)