private void bt_oper_click(object sender, MouseEventArgs e) { Button btn = sender as Button; if (calculator.IsNumber(buff)) //연산자 전에 피연산자 일 경우 { calculator.AddOper(buff); calculator.AddOper(btn.Text); output += btn.Text; textBox1.Text = output; } else if (btn.Text != ")" && btn.Text != "(") //괄호가 아닌 연산자를 입력 받았을 때 { if (calculator.Expression[0] == null) { //입력창 처음에 연산자를 입력하려 할 때 if (btn.Text == "-") // '-' 를 입력받은 경우 { buff += btn.Text; output += btn.Text; textBox1.Text = output; return; } else // '-'를 제외한 연산자일 경우 자동으로 0을 추가함 { buff = "0"; calculator.AddOper(buff); calculator.AddOper(btn.Text); output = "0" + btn.Text; textBox1.Text = output; } } else //연산자 선택했다가 또 연산자를 선택했을 경우 { if (calculator.IsNumber(calculator.ShowStringLastSecond())) //입력하려는 연산자 전에도 연산자가 아닐 경우만 최근에 누른 연산자로 바꿈 { calculator.DelOper(); calculator.AddOper(btn.Text); output = textBox1.Text.Substring(0, textBox1.Text.Length - 1); //기존 연산자를 제거해서 저장 output += btn.Text; textBox1.Text = output; } else if (calculator.ShowStringLast() == ")") //닫힌괄호일 경우 { calculator.AddOper(btn.Text); output += btn.Text; textBox1.Text = output; } } } else //괄호일 경우 { if (!calculator.IsNumber(calculator.ShowStringLast())) //그 전 문자가 숫자가 아닐 경우만 넣음 { calculator.AddOper(btn.Text); output += btn.Text; textBox1.Text = output; } } buff = ""; }