So I want to do my first Calculator but it does only do addition besides that whenever I use the point let's say 2.2 * 2.2 the whole thing crashes and I didn't figure out what I did wrong. Here is the code for it.
using System;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
Double resultValue = 0;
String operationPerformed = "";
bool isOperationPerformed = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void Button_Click(object sender, EventArgs e)
{
if ((textBox_Result.Text == "0") || (isOperationPerformed) )
textBox_Result.Clear();
isOperationPerformed = false;
Button button = (Button)sender;
if(button.Text==".")
{
if(!textBox_Result.Text.Contains("."))
textBox_Result.Text = textBox_Result.Text + button.Text;
}else
textBox_Result.Text = textBox_Result.Text + button.Text;
}
private void Operator_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
if (resultValue != 0)
{
buttonEquals.PerformClick();
operationPerformed = button.Text;
resultValue = Double.Parse(textBox_Result.Text);
labelCurrentOperation.Text = resultValue + " " + operationPerformed;
isOperationPerformed = true;
}
else
{
operationPerformed = button.Text;
resultValue = Double.Parse(textBox_Result.Text);
labelCurrentOperation.Text = resultValue + " " + operationPerformed;
isOperationPerformed = true;
}
}
private void buttonClearEntry_Click(object sender, EventArgs e)
{
textBox_Result.Text = "0";
}
private void buttonClear_Click(object sender, EventArgs e)
{
textBox_Result.Text = "0";
resultValue = 0;
}
private void buttonEquals_Click(object sender, EventArgs e)
{
switch(operationPerformed)
{
case "+":
textBox_Result.Text = (resultValue + Double.Parse(textBox_Result.Text)).ToString();
break;
case "-":
textBox_Result.Text = (resultValue + Double.Parse(textBox_Result.Text)).ToString();
break;
case "x":
textBox_Result.Text = (resultValue + Double.Parse(textBox_Result.Text)).ToString();
break;
case "÷":
textBox_Result.Text = (resultValue + Double.Parse(textBox_Result.Text)).ToString();
break;
default:
break;
}
resultValue = Double.Parse(textBox_Result.Text);
labelCurrentOperation.Text = " ";
}
}
}