Entwickler-Ecke

Basistechnologien - Win Forms Anwendungs Fehler[gelöst]


link2004 - Mi 09.03.11 20:55
Titel: Win Forms Anwendungs Fehler[gelöst]
Hey bin neu hier und weiß auch nicht wo ich das hin Posten soll daher falls es falsch ist Entschuldige ich mich im vorraus.

Also mein Problem ist das ich von der Schule aus ein Programm schreiben soll was Euro in Yen und Umgekehrt ausrechenet. Was eigentlich einfach ist aber mit WinForms ist das ein bisschen Kompliziert. Es kommt immer der Fehler: "Die Eingabezeichenfolge hat das falsche Format.". Entweder bei Yen oder Euro je nachdem wie ich es auswähle.

Das ist der Code ich finde einfach den Fehler nicht :S


C#-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:
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 Euro = Convert.ToDouble(txt_euro.Text);
            double Yen = Convert.ToDouble(txt_Yen.Text);
            double Umgere = Convert.ToDouble(txt_umgerechnet.Text);

            if(rdb_Euro.Checked)
            {
                Euro = Math.Round(Yen * 0.0062,2);
                txt_umgerechnet.Text = Convert.ToString(Euro);
            }
            else
            {
                Yen = Math.Round(Euro / 0.00622);
                txt_umgerechnet.Text = Convert.ToString(Yen);
            }
        }

        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)
        {

        }
    }
}

Danke im Vorraus

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Mi 09.03.2011 um 20:13


Christian S. - Mi 09.03.11 21:12

Hallo und :welcome:!

Bitte sei doch so gut und gebe Deinem Thema einen Titel, welcher mehr über die Frage aussagt.

Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian


Oppi35 - Mi 09.03.11 21:54

Hallo Link2004,

ich vermute der Fehler liegt darin, dass Du je nach Umrechnung, ein Textfeld nicht mit einer Zahl füllst. Beide Felder werden gem. Code jedoch von String in Double konvertiert; und einen leeren string kann man nicht in Double konvertieren.

Idealerweise solltest Du noch einen Check einbauen, der prüft, ob es sich überhaupt um eine gültige Zahl handelt und dann nur das relevante Feld in Double konvertieren. Ich persönlich würde nur ein Textfeld bereitstellen und dann mit Checkboxen oder ähnlichem auswählen, ob Umrechnung Yen->EUR oder EUR->Yen.

Bei Fragen bitte melden.

Gruß
Frank


link2004 - Do 10.03.11 07:38

@oppi35

Danke für die Antwort Problem Gelöst :D