Autor Beitrag
link2004
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Do 10.03.11 15:23 
Ich bin ein reiner Anfänger in C-Sharp bei den WinForms ich derweil von der Schule aus nur Konsolen Anwendungen geschrieben.

Daher wollte ich fragen ob ich ein Pop Up oder eine Meldung bekommen könnte falls ein Problem auftritt. Weil ein Fehler bei meinem jetzigen Schul Programm(ich muss Yen in Euro und umgekehrt rechnen) ist wenn ich den falschen RadioButton makieren(zb Yen in Euro) würde weil ich ja in dem Feld (zb.: Euro) nichts stehen habe kommt eine Fehlermeldung.
Ich danke im Vorraus :D


Zuletzt bearbeitet von link2004 am So 10.04.11 11:32, insgesamt 1-mal bearbeitet
m-s
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149
Erhaltene Danke: 7

Win 10
C# (VS 2015)
BeitragVerfasst: Do 10.03.11 19:38 
Ganz generell kannst Du Dir die Fehlermeldungen ja selber ausgeben, wenn Du die Lage überprüfst, also z.B. vor dem Rechnen.

Dann mit MessageBox.Show("Tolle Fehlermeldung"); eine Meldung ausgeben.

Gruß Markus
xToast
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Do 10.03.11 19:42 
Hinzuzufügen wär vllt noch, dass du Fehler mit try...catch(Exception e) abfangen kannst.
Das mit dem Berechnen einfach in den try Block bringen, bei einem Fehler springt's automatisch in den catch-Block, wo du eine Messagebox (siehe Vorposter) anzeigen kannst. Um die richtige Exception anzuzeigen reicht ein Messagebox.Show(e.ToString());
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 10.03.11 19:58 
Und nochmal hinzuzufügen wäre, dass man viele Eingaben einfach per "TryParse" prüfen kann. Dann muss es erst gar nicht zu einer Exception kommen!
ausblenden C#-Quelltext
1:
2:
3:
int.TryParse(string s, out result);
double.TryParse(string s, out result);
...
Denn jede Exception benötigt auch Ressourcen und damit Zeit, das merkt man, wenn man manche Fehler nicht so abfangen kann, und dann mehrere hundert Exceptions geworfen werden...
Marko
link2004 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Fr 11.03.11 08:00 
Danke für die Antworten nur versteh ich kaum was Anfänger halt

also das ist mein Code

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            double umgerechnet = 0;
            if(rdb_Euro.Checked)
            {
            double Yen = Convert.ToDouble(txt_Yen.Text);
            umgerechnet = Math.Round(Yen * 0.0062,2);
            txt_euro.Text = Convert.ToString(umgerechnet);
            }
            else
            {
                double Euro = Convert.ToDouble(txt_euro.Text);
                umgerechnet = Math.Round(Euro / 0.0062, 2);
                txt_Yen.Text = Convert.ToString(umgerechnet);
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void btn_Abbr_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void txt_Yen_TextChanged(object sender, EventArgs e)
        {

        }

        private void txt_umgerechnet_TextChanged(object sender, EventArgs e)
        {

        }

        private void rdb_Yen_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void rdb_Euro_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void grb_YenInEuro_Enter(object sender, EventArgs e)
        {

        }

        private void lbl_Euro_Click(object sender, EventArgs e)
        {

        }

        private void lbl_Yen_Click(object sender, EventArgs e)
        {

        }

        private void lbl_EuroInYen_Click(object sender, EventArgs e)
        {

        }
    }
}


Wo müsst ich dann das einfügen??
Danke Vorraus
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Fr 11.03.11 08:16 
Morgen,

na in etwa so:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
double yen;
if (!double.TryParse(txt_Yen.Text, out yen)
{
  MessageBox.Show("Fehlerhafte Eingabe");
}
else
{
  umgerechnet = Math.Round(yen * 0.0062,2);
  txt_euro.Text = Convert.ToString(umgerechnet);
}
Wozu hast Du eigentlich so viele EventHandler in Deinem Code? Die haben doch gar keine Aufgabe.
LG, Marko