C# System.FormatException Fehler trotz richtiger Konvertierung?

Syince

Grünschnabel
Guten Abend Community,

ich programmiere schon etwas länger C# und deswegen wundert mich dieser Fehler einfach...

Folgendes Szenario:

Ich empfange von einem eigenen Server eine zufällige Zahl zwischen 1-100. Diese Zahl wird in eine TextBox geschrieben. Nun soll nach dem Button Click die WindowsForm mithilfe einer PictureBox einen Balken generieren. Problem... Ich habe es anscheinend falsch formatiert, also die Zahl welche in der TextBox steht.

Quellcode:

...
int IntGröße = Convert.ToInt32(TbEmpfangen.Text);

Rectangle RectGröße = new Rectangle(1, 1, 130, IntGröße/100*218);
....

Die unterstrichene Zeile gibt folgende Exeption-Fehler aus:

Ein Ausnahmefehler des Typs "System.FormatException" ist in mscorlib.dll aufgetreten.

Zusätzliche Informationen: Die Eingabezeichenfolge hat das falsche Format.


MfG Serkan
 
Der TextBox Inhalt sieht wie folgt aus:

Client empfängt folgendes, was in die TextBox reingeschrieben wird:

string S = Encoding.ASCII.GetString(e.Packet);
TbEmpfangen.Text += S + "\r\n";
TbEmpfangen.Refresh();

und der Server sendet folgendes, was der Client dann ausliest und in die TextBox reinschreibt:

static Random Rand = new Random(DateTime.Now.Millisecond);
static string StrZufallsZahl = Rand.Next(0, 100).ToString();

Server.SendPacket(Encoding.ASCII.GetBytes(StrZufallsZahl));

Sprich da ist nur eine Zahl drin. Aber ich verstehe das irgendwie nicht... man ließt doch aus der TextBox einen String aus und den habe ich zu Int konvertiert und möchte mithilfe dieser Zahl den Balken "zeichnen". Also dies ist die Koordinate der Höhe...
 
Zuletzt bearbeitet:
Als erstes fällt da auf, dass das "\r\n" vor der Zahlenkonvertierung wieder weg sollte.
 
So Fehler gefunden... und dieser ist echt traurig gewesen o_O

Und zwar war es so das ich die Textbox auslesen wollte, ohne das dort Werte gegeben waren... deswegen auch die Exception... da in der TextBox keine Werte enthalten waren, konnte dieser auch nichts in den Integer übergeben :mad:

Naja Leichtsinnsfehler... aber komisch das mir das jetzt erst mitten in der Nacht auffällt :cool:
 
Enventuell anstatt Convert.ToInt32 zu verwenden eher int.TryParse.
Dann könntest du im fehlerfall das selbst abhandeln, wenn keine konvertierung möglich ist.
 
Zurück