Hallo und
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"; double d = 12.34; myTextBox.Text = d.ToString("d"); 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) { 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.