bf-7a7u7
Goto Top

CSharp - Textbox Inhalt beim Klick überprüfen und in eine Variable abspeichern

Hallo zusammen,

ich habe leider keine Erfahrungen mit programmieren, aber es reizt mich es zu lernen.

Aus mehreren Tutorials habe ich ein einfaches Programmchen geschrieben wo verschiedene Werte berechnet werden.

Allerdings habe ich ein Problem und zwar wenn ich eine der TextBoxen leer lasse stürzt das Programm ab.
Ich habe schon viele "Lösungen" angeschaut und probiert aber es klapt nicht.

Wünschenswert wäre wenn bei leeren TextFeld nichts passiert bis man eine Eingabe tätigt.

Hat jemand eine Lösung für sowas?


private void btvergleichen_Click(object sender, EventArgs e)
{
decimal breitea;
decimal seriea;
decimal zolla;
decimal mm;


breitea = Convert.ToDecimal(bra.Text);
seriea = Convert.ToDecimal(sra.Text);
zolla = Convert.ToDecimal(zra.Text);
mm = 25.4m;
}

Gruss
A.

Content-ID: 226834

Url: https://administrator.de/contentid/226834

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

colinardo
colinardo 16.01.2014 aktualisiert um 12:08:11 Uhr
Goto Top
Hallo A.,
mach das am besten so:
private void btnvergleichen_Click(object sender, EventArgs e)
        {
            try
            {
                decimal d1; decimal d2; decimal d3;
                bool isNum1 = decimal.TryParse(bra.Text,out d1);
                bool isNum2 = decimal.TryParse(sra.Text,out d2);
                bool isNum3 = decimal.TryParse(zra.Text,out d3);

                if (isNum1 && isNum2 && isNum3)
                {
                    decimal breitea;
                    decimal seriea;
                    decimal zolla;
                    decimal mm;

                    breitea = d1;
                    seriea = d2;
                    zolla = d3;
                    mm = 25.4m;
                    //Zeige die Werte nur als Beispiel an
                    MessageBox.Show("Breite: " + breitea + " / Serie: " + seriea + " / Zoll: " + zolla);  
                }
                else
                {
                    MessageBox.Show("Es sind nicht alle Werte angegeben, oder ungültige Werte verwendet worden!");  
                }

            }
            catch { }
        }
Schau dir unbedingt auch mal das Konstrukt TryCatch an ...damit deine Anwendung in Zukunft nicht mehr so einfach absemmelt face-wink

ansonsten kannst du dir auch eine Funktion bauen die prüft ob ein Text eine Zahl ist. Die liefert dann true zurück wenn es eine Zahl ist ansonsten false.
bool IsNumber(string text)
{
 System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^[-+]?[0-9]*[\.,]?[0-9]+$");  
 return regex.IsMatch(text);
}

Grüße Uwe
bf-7a7u7
bf-7a7u7 16.01.2014 um 11:56:20 Uhr
Goto Top
Vielen Dank Uwe

ich werde es gleich einbauen.