Und auf einmal geht nichts mehr D: Abfrage ob eine Zahl in der Textbox steht. Irgendwo ist da ein Fehler

  • C#

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von EaranMaleasi.

    Und auf einmal geht nichts mehr D: Abfrage ob eine Zahl in der Textbox steht. Irgendwo ist da ein Fehler

    Hey Leute,

    ich arbeite grad an einem kleinen Rechner.
    Dabei will ich natürlich sicher gehen dass man nur Zahlen eingibt.
    Doch irgend etwas hab ich wohl falsch gemacht, denn jetzt erkennt er nur noch Fehler bzw einen und zwar dass da was drinnen steht...

    Ich habs auch versucht mit am anfang bei Form start die Textbox zu leeren, aber es geht trotzdem nicht.

    Hoffe jemand von euch kann mir da helfen.

    C#-Quellcode

    1. string rk1 = textBox1.Text;
    2. string rg1 = textBox2.Text;
    3. string h1 = textBox3.Text;
    4. double rk = 0;
    5. double rg = 0;
    6. double h = 0;
    7. double.TryParse(textBox1.Text, out rk);
    8. double.TryParse(textBox2.Text, out rg);
    9. double.TryParse(textBox3.Text, out h);
    10. double pi = Math.PI;
    11. double calcyl = pi * (rk * rk) * h;
    12. if (textBox2.Text == "")
    13. {
    14. try
    15. {
    16. if (comboBox1.Text == "0")
    17. {
    18. rk = Convert.ToDouble(rk1);
    19. rg = Convert.ToDouble(rg1);
    20. h = Convert.ToDouble(h1);
    21. double calclyfin = Math.Round(calcyl, 0);
    22. label5.Text = calclyfin.ToString();
    23. }
    24. else if (comboBox1.Text == "1")
    25. {
    26. rk = Convert.ToDouble(rk1);
    27. rg = Convert.ToDouble(rg1);
    28. h = Convert.ToDouble(h1);
    29. double calclyfin = Math.Round(calcyl, 1);
    30. label5.Text = calclyfin.ToString();
    31. }
    32. else if (comboBox1.Text == "2")
    33. {
    34. rk = Convert.ToDouble(rk1);
    35. rg = Convert.ToDouble(rg1);
    36. h = Convert.ToDouble(h1);
    37. double calclyfin = Math.Round(calcyl, 2);
    38. label5.Text = calclyfin.ToString();
    39. }
    40. else if (comboBox1.Text == "5")
    41. {
    42. rk = Convert.ToDouble(rk1);
    43. rg = Convert.ToDouble(rg1);
    44. h = Convert.ToDouble(h1);
    45. double calclyfin = Math.Round(calcyl, 5);
    46. label5.Text = calclyfin.ToString();
    47. }
    48. else if (comboBox1.Text == "10")
    49. {
    50. rk = Convert.ToDouble(rk1);
    51. rg = Convert.ToDouble(rg1);
    52. h = Convert.ToDouble(h1);
    53. double calclyfin = Math.Round(calcyl, 10);
    54. label5.Text = calclyfin.ToString();
    55. }
    56. }
    57. catch
    58. {
    59. label5.Text = "Upps da ist etwas" + Environment.NewLine + "schief gelaufen...";
    60. textBox1.Clear();
    61. textBox2.Clear();
    62. textBox3.Clear();
    63. return;
    64. }
    65. }


    Danke im vorraus :)
    Entfern mal bitte das Try & Catch, und sag uns was genau für ein Fehler auftritt, und in welcher Zeile.

    Übrigens:

    C#-Quellcode

    1. if (comboBox1.Text == "0")
    2. {
    3. rk = Convert.ToDouble(rk1);
    4. rg = Convert.ToDouble(rg1);
    5. h = Convert.ToDouble(h1);
    6. double calclyfin = Math.Round(calcyl, 0);
    7. label5.Text = calclyfin.ToString();
    8. }
    9. else if (comboBox1.Text == "1")
    10. {
    11. rk = Convert.ToDouble(rk1);
    12. rg = Convert.ToDouble(rg1);
    13. h = Convert.ToDouble(h1);
    14. double calclyfin = Math.Round(calcyl, 1);
    15. label5.Text = calclyfin.ToString();
    16. }
    17. else if (comboBox1.Text == "2")
    18. {
    19. rk = Convert.ToDouble(rk1);
    20. rg = Convert.ToDouble(rg1);
    21. h = Convert.ToDouble(h1);
    22. double calclyfin = Math.Round(calcyl, 2);
    23. label5.Text = calclyfin.ToString();
    24. }
    25. else if (comboBox1.Text == "5")
    26. {
    27. rk = Convert.ToDouble(rk1);
    28. rg = Convert.ToDouble(rg1);
    29. h = Convert.ToDouble(h1);
    30. double calclyfin = Math.Round(calcyl, 5);
    31. label5.Text = calclyfin.ToString();
    32. }
    33. else if (comboBox1.Text == "10")
    34. {
    35. rk = Convert.ToDouble(rk1);
    36. rg = Convert.ToDouble(rg1);
    37. h = Convert.ToDouble(h1);
    38. double calclyfin = Math.Round(calcyl, 10);
    39. label5.Text = calclyfin.ToString();
    40. }


    Transformiert zu...

    C#-Quellcode

    1. rk = Convert.ToDouble(rk1);
    2. rg = Convert.ToDouble(rg1);
    3. h = Convert.ToDouble(h1);
    4. double calclyfin = Math.Round(calcyl, Int32.Parse(comboBox1.Text));
    5. label5.Text = calclyfin.ToString();


    Ich hab den Fehler gefunden

    Es war nicht das Try Catch sondern da ich ja oben schon in double das TryPrase benutzt hat hat sich das wohl in die Haare gekriegt.

    Trotzdem danke

    Ich schau mir das mit dem NumericUpDown-Control mal an danke für den Tipp :)