C# Taschenrechner

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace _1_Taschenrechner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox_op.SelectedIndex = 0;
        }
 
        private void btn_rechne_Click(object sender, EventArgs e)
        {
            rechne();
 
        }
 
        private void tb_Op1_KeyPress(object sender, KeyPressEventArgs e)
        {
            Console.WriteLine((int)e.KeyChar);
 
            if (char.IsDigit(e.KeyChar) || (int)e.KeyChar == 8 || e.KeyChar == '-' || e.KeyChar == ',')
            {
 
                // MessageBox.Show("Ziffer");
 
 
                if ((e.KeyChar == '-') && (tb_Op1.TextLength != 0))
                {
                    e.Handled = true;
                }
                if ((e.KeyChar == ',') && (tb_Op1.Text.Contains(",")))
                    e.Handled = true;
 
            }
            else
            {
              //  MessageBox.Show("Keine Ziffer");
                e.Handled = true;
            }
 
 
        }
 
        private void tb_Op2_KeyPress(object sender, KeyPressEventArgs e)
        {
            Console.WriteLine((int)e.KeyChar);
 
            if (char.IsDigit(e.KeyChar) || (int)e.KeyChar == 8 || e.KeyChar == '-' || e.KeyChar == ',')
            {
 
                // MessageBox.Show("Ziffer");
 
 
                if ((e.KeyChar == '-') && (tb_Op2.TextLength!=0))
                {
                    e.Handled = true;
                }
                if ((e.KeyChar == ',') && (tb_Op2.Text.Contains(",")))
                    e.Handled = true;
 
            }
            else
            {
                //  MessageBox.Show("Keine Ziffer");
                e.Handled = true;
            }
        }
 
        private void tb_Op1_KeyUp(object sender, KeyEventArgs e)
        {
            rechne();
        }
 
        public void rechne()
        {
            double erg;
 
            Console.WriteLine(comboBox_op.SelectedItem);
            //Objekt von SelectedItem wird zu String umgewandelt und mit [0] auf das erste Zeichen zugegriffen
 
 
 
            try
            {
                switch (comboBox_op.SelectedItem.ToString()[0])
                {
 
                    case '+': erg = double.Parse(tb_Op1.Text) + double.Parse(tb_Op2.Text); break;
                    case '-': erg = double.Parse(tb_Op1.Text) - double.Parse(tb_Op2.Text); break;
                    case '*': erg = double.Parse(tb_Op1.Text) * double.Parse(tb_Op2.Text); break;
                    case '/': erg = double.Parse(tb_Op1.Text) / double.Parse(tb_Op2.Text); break;
                    case '%': erg = double.Parse(tb_Op1.Text) % double.Parse(tb_Op2.Text); break;
                    default: erg = 0; break;
                }
 
                tb_erg.Text = erg.ToString();
                //MessageBox.Show(erg.ToString(), "Ergebnis");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Fehler bei der Eingabe. Überprüfen Sie ihre Eingabe. " + ex.Message, "Fehler");
            }
        }
 
        private void tb_Op2_KeyUp(object sender, KeyEventArgs e)
        {
            rechne();
        }
 
        private void comboBox_op_SelectedIndexChanged(object sender, EventArgs e)
        {
            rechne();
        }
    }
}