Entwickler-Ecke

Sonstiges (.NET) - Text in Textbox durch Button


Helldog - Sa 03.04.10 16:04
Titel: Text in Textbox durch Button
Hi ihr Profis,
bin noch voll der anfänger und hab da mal ne frage (wahrscheinlich voll einfach für euch). wie kann ich über nen button einen zahl in eine textbox schreiben die ausschieslich zahlen mit zwei kommastellen anzeigt?

Mfg Hell


Moderiert von user profile iconKha: Topic aus Off Topic verschoben am Sa 03.04.2010 um 19:44


jaenicke - Sa 03.04.10 17:06

Hallo und :welcome: im Forum!

Schau dir einmal die Funktion Suche in der Delphi-Reference FORMAT an, damit kannst du eine Zahl mit zwei Nachkommastellen ausgeben. In deinem Fall also z.B.:

Delphi-Quelltext
1:
Format('Die Zahl lautet: %.2f', [DeineZahl]);                    


JüTho - Sa 03.04.10 17:09

Hallo und :welcome:

Wieso ist diese Frage "OffTopic"? Du hast doch eine Grundsatzfrage zu einer bestimmten Sprache. Aber zu welcher? Sebastian vermutet Delphi, ich vermute C#. Du siehst, welche Verwirrung ungenaue Fragen verursachen können.

Eine Textbox zeigt Text an, also etwas vom Typ string. Außerdem musst du berücksichtigen, dass .NET und damit auch C# exakt auf die Datentypen achtet. Also ist klar: Einer TextBox kann keine Zahl zugewiesen werden, egal ob mit oder ohne Dezimalstellen.

Es gibt aber natürlich stattdessen viele Möglichkeiten. Da du nicht genauer sagst, was dir eigentlich vorschwebt, kann ich sie hier nur aufführen; auswählen musst du selber:

C#-Quelltext
1:
2:
3:
4:
5:
6:
   myTextBox.Text = "12,34";
   // oder
   double d = 12.34;
   myTextBox.Text = d.ToString("d");
   // oder
   myTextBox.Text = (12.34).ToString();

Das von dir bevorzugte Verfahren gehört dann in den EventHandler des Buttons.

Ich vermute aber, dir geht es um etwas ganz Anderes, nämlich einen Taschenrechner, der über Buttons gesteuert. Dann musst du einen String, der einem Button entspricht, an den Text der Textbox anhängen:

C#-Quelltext
1:
   myTextBox.Text += currentButton.Text;                    

Das geht dann noch besser einheitlich über alle Ziffern-Buttons:

C#-Quelltext
1:
2:
3:
4:
5:
6:
private void digits_Click(object sender, EventArgs e)
{
   if(sender is Control) {          // Sicherheitsprüfung
      myTextBox.Text += (sender as Control).Text;
   }
}

Beachte, dass Dezimalzahlen durch NumberDecimalSeparator zu trennen sind.

Wenn du sicherstellen willst, dass die Zahl maximal zwei Dezimalstellen hat, dann musst du den Text mit IndexOf und Substring untersuchen. Bedenke aber, dass double-Werte ungenau berechnet werden und das Ergebnis "länger" sein kann.

Für weitere Fragen solltest du genauer sagen, was du machen willst. Aber hier im Forum findest du durch die Suche auch viele verschiedene Lösungsverfahren.

Gruß Jürgen

@Sebastian
Mir ist das Off-Topic auch erst aufgefallen, als ich kurz vor dem Absenden deine Antwort gelesen hatte.


jaenicke - Sa 03.04.10 17:13

Ach ja, hab gar nicht drauf geachtet, dass das in Off Topic steht, hab nur Delphi-Forum bei Navigation gesehen und das deshalb auf Delphi bezogen. Aber Textbox hört sich wirklich eher nach .NET an. :wink:


Helldog - Sa 03.04.10 18:35

Vielen Dank an euch beide, es ist c#
tschuldigung das ich es nich mit reingeschrieben hatte.
Code hat funktioniert, DANKE!!!