Inhalt von Textfeld in Single konvertrieren
lima-city → Forum → Programmiersprachen → Basic
anweisung
beispiel
benutzer
catch
erhhe
fehler
gleichung
halbe stunde
knpfen
komma
konvertierung
lsen
mglichkeit
relativ
scheien
single
sitzen
textfeld
tip
ursache
-
Hallo zusammen!
Also ich sitze nun schon knap ne halbe Stunde vor meinem VisualStudio 2003 (VB.NET) und versuche folgendes Problem zu lösen:
Ich habe ein Textfeld, in das der Benutzer eine Zahl eingeben soll. Die wird dann in eine Single-Variable geschrieben und mit der rechne ich dann gleichungen aus.
Mein Problem ist, dass wenn da irgendwer etwas anderes als Zahlen rein schreibt, bekomme ich einen Fehler das die Konvertierung in Single fehlgeschlagen ist, und mein Programm schmiert ab!
Gibt es denn keine Möglichkeit zu überprüfen, ob in dem Textfeld Zahlen drin stehen und wenn das nicht der Fall ist eine MessageBox aufzurufen??? ...bis jetzt hab ich zumindest mit allem was ich gefunden hab nur weitere Fehlermeldungen gesehe!
Tia
slysphotos
p.s.: wo kann man eigentlich so "relativ simple" fragen recherchieren?
Ich hab weder mit google noch in der msdn was brauchbares gefunden.. :(
Beitrag geaendert: 31.3.2007 21:54:03 von slysphotos -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
versuchs mal mit try-catch
-
danke für den Tip, aber so wie ich das sehe kann ich damit nur den fehler abfangen.
gibt denn keine möglichkeit das von anfang an einfach richtig zu kenvertrieren? -
Also wenn man Text oder so reinschreibt kann man es logischerweise nicht konvertieren. Dann kannst du dem Benutzer wenigstens sagen, er soll nicht so ein Scheiss reinschreiben.
Die andere Möglichkeit wäre es eine Schablone zu mache, was man eingeben darf. Da du aber nicht weisst, wie lange die Zahl ist, gestaltet sich das als ziemlich schwierig.
Dann könntest du wie bei einem Taschenrechner einfach nur die Knöpfe für die Zahlen zu geben.
Oder alle Tasten-Drücke ausgenommen Zahlen zu ignorieren. Oder sobald es im Textfeld ein Symbol hat, das keine Zahl ist, wieder den Wert davor hinzuschreiben.
Dann könntest du, wenn es eine Grafische Öberfläche gibt, das Eingabefeld, nur für Zahlen verwenden. (Weiss den Namen gerade nicht).
Aber ich würde es mit Try-Catch machen. Du könntest die Chance erhöhen, dass das konvertieren klappt. Ich weiss nicht, ob Komma und Punkt erlaubt sind. Sonst kann man das ersetzten.
Aber solange der Benutzer etwas eingibt, dass man nicht konvertieren kann, so kann man es halt nicht konvertieren -
Hi,
mit der Funktion IsNumeric() kannst du überprüfen, ob ein bestimmter Text in eine Zahl umgewandelt werden kann.
Beispiel:
If IsNumeric(Me.TextBox1.Text) Then
Dim MeineZahl As Single = CType(Me.TextBox1.Text, Single)
Else
MsgBox("Sie haben keine Zahl eingegeben.")
End If
Allerdings kann hier noch ein Fehler auftreten: Die eingegebene Zahl ist zu groß für den Datentyp Single (-> Overflow). Deshalb sollte noch eine Try..Catch Anweisung eingebaut werden.
Beispiel:
If IsNumeric(Me.TextBox1.Text) Then
Try
Dim MeineZahl As Single = CType(Me.TextBox1.Text, Single)
Catch ex As Exception
MsgBox("Die eingegebene Zahl kann nicht in den Typ Single umgewandelt werden." & vbNewLine & "Ursache: " & ex.Message)
End Try
Else
MsgBox("Sie haben keine Zahl eingegeben.")
End If -
@cbhp:
Danke für die Erklärung, genau das hatte ich uhrsprünglich gesucht!
Ich hab mich jetzt aber doch dazu entschlossen einfach ein "NumericUpDown" statt einem Textfeld zu verwenden; sicher ist sicher :)
Danke trotzdem an alle! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage