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-Key: 226834

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

Printed on: April 24, 2024 at 20:04 o'clock

Member: colinardo
colinardo Jan 16, 2014 updated at 11:08:11 (UTC)
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
Member: bf-7a7u7
bf-7a7u7 Jan 16, 2014 at 10:56:20 (UTC)
Goto Top
Vielen Dank Uwe

ich werde es gleich einbauen.