C# :: Aufgabe #274 :: Lösung #3
3 Lösungen
#274
Windows Forms Taschenrechner
Anfänger - C#
von paddlboot
- 04.12.2019 um 17:09 Uhr
Erstelle mit Hilfe von Windows Forms einen Taschenrechner!
- Der Taschenrechner soll zwei Zahlen speichern können.
- Wie bei einem Taschenrechner üblich, sollen alle Zahleneingaben gesammelt werden bis der Operator gewählt wurde.
- Mit jedem Drücken einer Zahlentaste wird der Variable also eine Dezimalstelle hinzugefügt.
- Wenn ein Operator ausgewählt wurde, soll die erste eingegebene Zahl gespeichert werden, ebenso der Operator (in einer separaten Variable).
- Mit Drücken der Ergebnis Taste (=) soll das Ergebnis in der selben Textbox ausgegeben werden, wie die, in der die Zahlen eingegeben wurden.
Im Anhang ein Beispiel wie ich das gelöst habe.
- Der Taschenrechner soll zwei Zahlen speichern können.
- Wie bei einem Taschenrechner üblich, sollen alle Zahleneingaben gesammelt werden bis der Operator gewählt wurde.
- Mit jedem Drücken einer Zahlentaste wird der Variable also eine Dezimalstelle hinzugefügt.
- Wenn ein Operator ausgewählt wurde, soll die erste eingegebene Zahl gespeichert werden, ebenso der Operator (in einer separaten Variable).
- Mit Drücken der Ergebnis Taste (=) soll das Ergebnis in der selben Textbox ausgegeben werden, wie die, in der die Zahlen eingegeben wurden.
Im Anhang ein Beispiel wie ich das gelöst habe.
#3
von Exception (7090 Punkte)
- 22.12.2019 um 09:21 Uhr
Form1.cs
C#-Code
Form1.Designer.cs
C#-Code
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace _274_Taschenrechner
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.InitControls();
}
private void InitControls()
{
this.Width = 350;
this.Height = 400;
this.BackColor = Color.Green;
this.MaximizeBox = false;
this.FormBorderStyle = FormBorderStyle.Fixed3D;
this.Text = "A Simple Green Calculator";
TextBox t = new TextBox();
t.Name = "output";
t.Width = this.Width - 40;
t.ReadOnly = true;
t.Location = new Point(10, 10);
this.Controls.Add(t);
int size = 50;
int x = this.Width - 100, y = t.Bottom + 20;
Button b;
for (int i = 9; i >= 1; i--)
{
b = new Button();
b.Name = "" + i;
b.Text = b.Name;
b.Width = size;
b.Height = size;
b.FlatStyle = FlatStyle.Flat;
b.BackColor = Color.LightGreen;
b.Click += Click_Digit;
if (i % 3 == 0 && i != 9)
{
y += 75;
x = this.Width - 175;
}
else
{
x -= 75;
}
b.Location = new Point(x, y);
this.Controls.Add(b);
}
x = 28;
b = new Button();
b.Name = "" + 0;
b.Text = b.Name;
b.Width = size;
b.Height = size;
b.FlatStyle = FlatStyle.Flat;
b.BackColor = Color.LightGreen;
b.Location = new Point(x, y + 75);
b.Click += Click_Digit;
this.Controls.Add(b);
x += 75;
b = new Button();
b.Name = "C";
b.Text = b.Name;
b.Width = size;
b.Height = size;
b.FlatStyle = FlatStyle.Flat;
b.BackColor = Color.LightPink;
b.Location = new Point(x, y + 75);
b.Click += Click_Reset;
this.Controls.Add(b);
x += 75;
b = new Button();
b.Name = "=";
b.Text = b.Name;
b.Width = size;
b.Height = size;
b.FlatStyle = FlatStyle.Flat;
b.BackColor = Color.Gold;
b.Location = new Point(x, y + 75);
b.Click += Click_Calculate;
this.Controls.Add(b);
x = this.Width - 100;
y = t.Bottom + 20;
List<string> operators = new List<string>() { "+", "-", "*", "/" };
foreach(string s in operators)
{
b = new Button();
b.Name = s;
b.Text = b.Name;
b.Width = size;
b.Height = size;
b.FlatStyle = FlatStyle.Flat;
b.BackColor = Color.LightSkyBlue;
b.Location = new Point(x, y);
b.Click += Click_Operator;
y += 75;
this.Controls.Add(b);
}
}
private TextBox getOutputTextbox()
{
return this.Controls.Find("output", true).FirstOrDefault() as TextBox;
}
private void Click_Digit(object sender, EventArgs e)
{
Button b = sender as Button;
TextBox tb = this.getOutputTextbox();
tb.Text += b.Name;
}
private void Click_Reset(object sender, EventArgs e)
{
TextBox tb = this.getOutputTextbox();
tb.Clear();
}
private void Click_Calculate(object sender, EventArgs e)
{
TextBox tb = this.getOutputTextbox();
tb.Text = new DataTable().Compute(tb.Text, null).ToString();
}
private void Click_Operator(object sender, EventArgs e)
{
Button b = sender as Button;
TextBox tb = this.getOutputTextbox();
tb.Text += b.Name;
}
}
}
Form1.Designer.cs
namespace _274_Taschenrechner
{
partial class Form1
{
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Vom Windows Form-Designer generierter Code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(182, 25);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
