Entwickler-Ecke

WinForms - TextBox Zu Double


maxwinter514 - Fr 22.02.19 14:16
Titel: TextBox Zu Double
Hi Leute, ich hab folgendes Problem -> ich hab zwei btn einen um einen Auftrag in ein Datagriedview einzufügen und einen um einen Auftrag zu ändern. Beim einfügen wandel ich ein zwei Textfelder in Double werte um wenn ich das aber beim btn Ändern versuch bekomme ich egal auf welche weiße ich es versuche eine Fehlermeldung wäre glücklich wenn ihr mir dabei helfen könntet.

Hier der Code


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:
        private void Hinzu_Load(object sender, EventArgs e)
        {
            if(Auf != null)
            {
                textBoxBezeichnung.Text = Auf.Bezeichnung;
                textBoxAbgabe.Text = Auf.Abgabe;
                textBoxAuftraggeber.Text = Auf.Auftraggeber;
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {      
            Auf.Bezeichnung = textBoxBezeichnung.Text;
            double textBoxValue = double.Parse(textBoxBetrag.Text);
            double textBoxM = double.Parse(textBoxMenge.Text);           
            Auf.Menge = textBoxM;
            Auf.preis = textBoxValue;
            Auf.Brutto = Auf.Menge * Auf.preis;
            Auf.Netto = Auf.Brutto/119;
            Auf.Netto *= 100;         
            Auf.Abgabe = textBoxAbgabe.Text;
            Auf.Auftraggeber = textBoxAuftraggeber.Text;
            Auf.AktDatum = System.DateTime.Now.ToShortDateString();
        }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Delete - Fr 22.02.19 14:50

- Nachträglich durch die Entwickler-Ecke gelöscht -


maxwinter514 - Fr 22.02.19 17:42

Achso ich weiß nicht wie ich die Variablen menge und preis die Ja jetzt double werte sind in das Textfeld hineinbekomme oder wie ich es sonst schaffe das ich die in meinem Programm ändern kann ?? Und ja ich weiß das wo Englisch ist hab ich mir Kopiert des wird noch geändert

Bsp Lösung die aber nicht funkt =D


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
private void Hinzu_Load(object sender, EventArgs e)
        {
            if(Auf != null)
            {
                textBoxBezeichnung.Text = Auf.Bezeichnung;
                textBoxAbgabe.Text = Auf.Abgabe;
                textBoxAuftraggeber.Text = Auf.Auftraggeber;
                textBoxBetrag.Text = string(Auf.preis);


            }

        }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Ralf Jansen - Fr 22.02.19 18:08

Rufe die ToString() Methode am double auf bzw. eine Überladung davon um das genaue Format festzulegen. Die Darstellung einer Zahl ist ja kulturspezifisch.


maxwinter514 - Sa 23.02.19 10:42

Hey sry das ich nochmal frage ich glabe ich hab alles richtig gemacht mit dem ToString. Zu mindestens stürzt das Programm nicht mehr ab :) jetzt übernimmt meine Datagrieview jedoch die Änderungen nicht und ich weiß nicht warum ich kann zwar den btnEdit drücken jedoch passiert nichts ??

Hier die Hinzu

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
public partial class Hinzu : Form
{
public Auftrag Auf { get; set; }


public Hinzu()
{
InitializeComponent();
}

private void Hinzu_Load(object sender, EventArgs e)
{
if(Auf != null)
{
textBoxBezeichnung.Text = Auf.Bezeichnung;
textBoxAbgabe.Text = Auf.Abgabe;
textBoxAuftraggeber.Text = Auf.Auftraggeber;
string Preis = Auf.preis.ToString();
textBoxBetrag.Text = Preis;
string Menge = Auf.Menge.ToString();
textBoxMenge.Text = Menge;



}

}

public void btnSave_Click(object sender, EventArgs e)
{
Auf.Bezeichnung = textBoxBezeichnung.Text;
double textBoxValue = double.Parse(textBoxBetrag.Text);
double textBoxM = double.Parse(textBoxMenge.Text);
Auf.Menge = textBoxM;
Auf.preis = textBoxValue;
Auf.Brutto = Auf.Menge * Auf.preis;
Auf.Netto = Auf.Brutto/119;
Auf.Netto *= 100;
Auf.Abgabe = textBoxAbgabe.Text;
Auf.Auftraggeber = textBoxAuftraggeber.Text;
Auf.AktDatum = System.DateTime.Now.ToShortDateString();
}

private void textBoxBetrag_TextChanged(object sender, EventArgs e)
{


}

private void textBoxBetrag_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if (ch == 44 && textBoxBetrag.Text.IndexOf(',') != -1)
{
e.Handled = true;
return;
}
if (!char.IsDigit(ch) && ch != 8 && ch != 44)
{
e.Handled = true;
}
}


und die Form1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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



private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewCheckBoxCell ch1 = new DataGridViewCheckBoxCell();


if (ch1.Value == null)
ch1.Value = false;
switch (ch1.Value.ToString())
{
case "True":
ch1.Value = false;
break;
case "False":
ch1.Value = true;
break;
}



}



private void btnAdd_Click(object sender, EventArgs e)
{
using (Hinzu hin = new Hinzu() { Auf = new Auftrag() })
{
if (hin.ShowDialog() == DialogResult.OK)
{
auftragBindingSource.Add(hin.Auf);

}

}

}

private void button4_Click(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{

}

private void btnEdit_Click(object sender, EventArgs e)
{
Auftrag edit = auftragBindingSource.Current as Auftrag;
if (edit != null)
{
using (Hinzu hin = new Hinzu() { Auf = edit })
{
if(hin.ShowDialog() == DialogResult.OK)
{
auftragBindingSource.EndEdit();
btnEdit.Focus();
}
}
}

}
}
}


maxwinter514 - Sa 23.02.19 10:53

Und wie muss ich den Code Umschließen das er auch als Code Angezeigt wird


Christian S. - Sa 23.02.19 11:53

Einfach die entsprechenden Tags davor und dahinter schreiben. Für C#-Code sieht das dann so aus:


Quelltext
1:
2:
3:
[cs]
... dein Code ...
[/cs]


Am Besten editierst Du Deinen Beitrag direkt und fügst die entsprechenden Tags noch hinzu :-)


Delete - Sa 23.02.19 20:42

- Nachträglich durch die Entwickler-Ecke gelöscht -