using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Calculator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string op;
        double a, b;
        Operat o = new Operat();
        private void btn1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }
            textBox1.Text += "1";
        }

        private void btn2_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
              
            }
            textBox1.Text += "2";
        }

        private void btn3_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }textBox1.Text += "3";
        }

        private void btn4_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }
            textBox1.Text += "4";
        }

        private void btn5_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }
            textBox1.Text += "5";
        }

        private void btn6_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }
            textBox1.Text += "6";
        }

        private void btn7_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
              
            }
            textBox1.Text += "7";
        }

        private void btn8_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }
            textBox1.Text += "8";
        }

        private void btn9_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
               
            }
            textBox1.Text += "9";
        }

        private void btn0_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
              
            }
            textBox1.Text += "0";
        }

        private void btnDot_Click(object sender, EventArgs e)
        {
            string s = textBox1.Text;
            if (s.IndexOf('.') > -1)
            {
                MessageBox.Show("已经包含小数点", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            else
            {
                textBox1.Text += ".";
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (op == "+" || op == "-" || op == "*" || op == "/")
            {
                op = "+";
            }
            else
            {
                op = "+";
                a = double.Parse(textBox1.Text);
            }
            textBox1.Text = "";
        }

        private void btnSub_Click(object sender, EventArgs e)
        {
            if (op == "+" || op == "-" || op == "*" || op == "/")
            {
                op = "-";
            }
            else
            {
                op = "-";
                a = double.Parse(textBox1.Text);
            }
            textBox1.Text = "";
        }

        private void btnMulti_Click(object sender, EventArgs e)
        {
            if (op == "+" || op == "-" || op == "*" || op == "/")
            {
                op = "*";
            }
            else
            {
                op = "*";
                a = double.Parse(textBox1.Text);
            }
            textBox1.Text = "";
        }

        private void btnDiv_Click(object sender, EventArgs e)
        {
            if (op == "+" || op == "-" || op == "*" || op == "/")
            {
                op = "/";
            }
            else
            {
                op = "/";
                a = double.Parse(textBox1.Text);
            }
            textBox1.Text = "";
        }

        private void btnResult_Click(object sender, EventArgs e)
        {
            b = double.Parse(textBox1.Text);
            textBox1.Text = o.Operation(a, b, op).ToString();

        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void btnBackspace_Click(object sender, EventArgs e)
        {
            string sub = textBox1.Text;
            textBox1.Text = sub.Substring(0, sub.Length - 1);
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Text = "";
            }

            if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != '.')
            {
                e.Handled = true;
            }
           

        }


    }

    public class Operat
    {
        public Double Operation(double a, double b, string o)
        {
            double r = 0; ;
            switch (o)
            {
                case "+":
                    r = a + b;
                    break;
                case "-":
                    r = a - b;
                    break;
                case "*":
                    r = a * b;
                    break;
                case "/":
                    r = a / b;
                    break;
            }
            return r;

        }

    }
}