This morning I created a windows form project to make a calculator from what I've learned and to self learn myself some programming.
Everything was fine , I could make the number buttons print the specific number in the text box , and the operator buttons clears the text box so you can write the second number , but when I press equal"=" I get this run time error :
Value cannot be null. Parameter name: String
And I will show you the code in the form1 class (as usual its the only class I have to edit) :
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<string> theNumberList = new List<string>();
public string numbers = null;
int number1, number2;
string num1, num2, operat;
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
theNumberList.Add("1");
ShowNumbers(theNumberList, numbers, textBox1);
}
public static void ShowNumbers(List<string> theList, string aString, TextBox textBox)
{
foreach(string number in theList)
{
aString = aString + number;
textBox.Text = aString;
}
}
private void button2_Click(object sender, EventArgs e)
{
theNumberList.Add("2");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button3_Click(object sender, EventArgs e)
{
theNumberList.Add("3");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button4_Click(object sender, EventArgs e)
{
theNumberList.Add("4");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button5_Click(object sender, EventArgs e)
{
theNumberList.Add("5");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button6_Click(object sender, EventArgs e)
{
theNumberList.Add("6");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button7_Click(object sender, EventArgs e)
{
theNumberList.Add("7");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button8_Click(object sender, EventArgs e)
{
theNumberList.Add("8");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button9_Click(object sender, EventArgs e)
{
theNumberList.Add("9");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void button0_Click(object sender, EventArgs e)
{
theNumberList.Add("0");
ShowNumbers(theNumberList, numbers, textBox1);
}
private void Plus_Click(object sender, EventArgs e)
{
num1 = numbers;
theNumberList.Clear();
num2 = numbers;
operat = "+";
}
private void Subtract_Click(object sender, EventArgs e)
{
}
private void Multiply_Click(object sender, EventArgs e)
{
}
private void Divide_Click(object sender, EventArgs e)
{
}
private void Equal_Click(object sender, EventArgs e)
{
int result;
switch (operat)
{
case "+":
number1 = int.Parse(num1);
number2 = int.Parse(num2);
result = number1 + number2;
theNumberList.Clear();
textBox1.Text = result.ToString();
break;
}
}
}
so this is the code and the error comes at Equal_click in "number1 = int.parse(num1);" here :
private void Equal_Click(object sender, EventArgs e)
{
int result;
switch (operat)
{
case "+":
number1 = int.Parse(num1);
number2 = int.Parse(num2);
result = number1 + number2;
theNumberList.Clear();
textBox1.Text = result.ToString();
break;
}
}
I don't know how to fix it and what is wrong ?