コード例 #1
0
ファイル: Form1.cs プロジェクト: dreysmal/Calculator
 private void reset_Click(Object sender, EventArgs e)
 {
     Operator = "reset_all";
     foreach (Control item in Controls)
     {
         if (item as Button != null)
         {
             (item as Button).Enabled = true;
         }
     }
     Controls_op?.Invoke(this, EventArgs.Empty);
     equals.Focus();
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: dreysmal/Calculator
 ///Controls
 private void equals_Click(Object sender, EventArgs e)
 {
     Operator = "enter";
     try
     {
         Controls_op?.Invoke(this, EventArgs.Empty);
     }
     catch
     {
         result_window.Text = "Divide by zero -> hit C";
         foreach (Control item in Controls)
         {
             if (item as Button != null)
             {
                 (item as Button).Enabled = false;
             }
         }
         reset.Enabled = true;
     }
     equals.Focus();
 }
コード例 #3
0
ファイル: Form1.cs プロジェクト: dreysmal/Calculator
        ///Keys
        private void Form1_KeyDown(Object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
            case Keys.Back:
                Backspace?.Invoke(this, EventArgs.Empty);
                equals.Focus();
                break;

            case Keys.Enter:
                Operator = "enter";
                try
                {
                    Controls_op?.Invoke(this, EventArgs.Empty);
                }
                catch
                {
                    result_window.Text = "Divide by zero -> hit C";
                    foreach (Control item in Controls)
                    {
                        if (item as Button != null)
                        {
                            (item as Button).Enabled = false;
                        }
                    }
                    reset.Enabled = true;
                }
                break;

            case Keys.Multiply:
                Operator = "*";
                try
                {
                    Binar_Operators?.Invoke(this, EventArgs.Empty);
                }
                catch
                {
                    result_window.Text = "Divide by zero -> hit C";
                    foreach (Control item in Controls)
                    {
                        if (item as Button != null)
                        {
                            (item as Button).Enabled = false;
                        }
                    }
                    reset.Enabled = true;
                }
                break;

            case Keys.Add:
                Operator = "+";
                try
                {
                    Binar_Operators?.Invoke(this, EventArgs.Empty);
                }
                catch
                {
                    result_window.Text = "Divide by zero -> hit C";
                    foreach (Control item in Controls)
                    {
                        if (item as Button != null)
                        {
                            (item as Button).Enabled = false;
                        }
                    }
                    reset.Enabled = true;
                }
                break;

            case Keys.Subtract:
                Operator = "-";
                try
                {
                    Binar_Operators?.Invoke(this, EventArgs.Empty);
                }
                catch
                {
                    result_window.Text = "Divide by zero -> hit C";
                    foreach (Control item in Controls)
                    {
                        if (item as Button != null)
                        {
                            (item as Button).Enabled = false;
                        }
                    }
                    reset.Enabled = true;
                }
                break;

            case Keys.Decimal:
                try
                {
                    Decimal.Parse("0" + Separator);
                    if (!result_window.Text.Contains(Separator))
                    {
                        result_window.Text += Separator;
                        Digits?.Invoke(this, EventArgs.Empty);
                    }
                    equals.Focus();
                }
                catch
                {
                    Separator = ",";
                    if (!result_window.Text.Contains(Separator))
                    {
                        result_window.Text += Separator;
                        Digits?.Invoke(this, EventArgs.Empty);
                    }
                    equals.Focus();
                }
                break;

            case Keys.Divide:
                Operator = "/";
                try
                {
                    Binar_Operators?.Invoke(this, EventArgs.Empty);
                }
                catch
                {
                    result_window.Text = "Divide by zero -> hit C";
                    foreach (Control item in Controls)
                    {
                        if (item as Button != null)
                        {
                            (item as Button).Enabled = false;
                        }
                    }
                    reset.Enabled = true;
                }
                break;

            default:
                if (e.KeyCode.ToString().StartsWith("NumPad"))
                {
                    result_window.Text += e.KeyCode.ToString().Substring(6);
                    Digits?.Invoke(this, EventArgs.Empty);
                }
                if (e.KeyCode.ToString().StartsWith("D"))
                {
                    result_window.Text += e.KeyCode.ToString().Substring(1);
                    Digits?.Invoke(this, EventArgs.Empty);
                }
                break;
            }
        }