hur kan man bäst göra för att kontrollera att användaren skriver siffror, inte missa att fylla i textboxen samt att programmet inte hänger sig, till detta ska man ha olika texter till användaren och även sätta just den specifika textboxen i focus, har använt en if-sats så här: Skriv en Sub tack, det fungerade. Men om då också vill att den ska sätta den textboxen i focus som det är fel i hur ska göra då? Nu vet jag inte jag missförstått något men om du nu vill kolla input i en textbox varför avänder du inte Validator kontroller? En Required för att kolla så det inte är tomt och en RegularExpression för att kolla så det bara är siffror. Usch! Se iaf till att typa om <b>Sender</b> till ett <b>TextBox</b> objekt innan du anropar någon metod eller property på den. jag håller på med att lära mig vb.net, så jag behöver se hela codningen så som jag visade först, för annars har jag svårt att förstå vad ni menar. En sak du kan utnyttja på Windows Forms är att lägga en <b>ErrorProvider</b> komponent på ditt formulär. En ErrorProvider placerar en liten ikon vid din kontroll för att indikera att något var fel med den. Håller man musen över ikonen så visas en text som man förser den med.kontrollera att användaren skriver siffror
If txtA.Text = "" Then
Call ErrorMessage(msgtxt1)
txtA.Focus()
Exit Sub
ElseIf Not IsNumeric(txtA.Text) Then
Call ErrorMessage(msgtxt2)
txtA.Focus()
Exit Sub
Else
a = txtA.Text
End If
såhär har jag gjort för samtliga textboxar, tycker att det är enklare att läsa om de har egna if-satser, man kanske kan lösa det med en loop eller ngt jag vet inge, så om det finns någon som har något bättre förlag och som kan tala om varför så vore jag tacksam om någon kan tala om det för mig eller om det jag gjort är ok, (för det fungerar), men är nyfiken på andra lösningar,
tacksam för all hjälp jag kan fåSv: vb.net
Skriv Handles Textbox1.nåt, Textbox2.Nåt efter subben
Använd "sender" istället för textboxens namn.
If sender.Text = "" Then
/mickeSv: vb.net
Sv: vb.net
Eller funkar inte Validators i WinForms?Sv: vb.net
DirectCast(Sender, TextBox).Text = ""
Sv: vb.net
Sv: vb.net
Följande kod använder en errorprovider för att indikera att man måste ange ett tal i en textbox. Om det inmatade värdet inte är numeriskt så färgar den också innehållet i textboxen rött och det blir inte svart igen förrens man korrigerat det inmatade värdet till ett giltigt format.
[VB.NET]
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not IsNumeric(Me.TextBox1.Text) Then
Me.TextBox1.ForeColor = Color.Red
Me.ErrorProvider1.SetError(Me.TextBox1, "Du måste ange ett tal")
Else
Me.TextBox1.ForeColor = Color.Black
If (Me.ErrorProvider1.GetError(Me.TextBox1).Length > 0) Then
Me.ErrorProvider1.SetError(Me.TextBox1, "")
End If
End If
End Sub