Как сделать так чтобы избежать повторения буквы в элементе textbox1 при долгом нажатии на одну клавишу?

Как сделать так чтобы избежать повторения буквы в элементе textbox1 при долгом нажатии на одну клавишу? Вот код:

namespace WindowsFormsApp2
{

    public partial class Form1 : Form
    {
        int time;
        bool up;
        private Dictionary<Keys, Control> _keyMap;
      
        public Form1()
        {

            InitializeComponent();
            time = 0;
            up = false;
            this.KeyUp += new KeyEventHandler(Form1_KeyUp);


            _keyMap = new Dictionary<Keys, Control>();
            _keyMap.Add(Keys.A, button1);   //A
            _keyMap.Add(Keys.S, button2);   //S
            _keyMap.Add(Keys.D, button3);   //D
            _keyMap.Add(Keys.F, button6);   //F
            _keyMap.Add(Keys.G, button5);   //G
            _keyMap.Add(Keys.H, button4);   //H
            _keyMap.Add(Keys.J, button9);   //J
            _keyMap.Add(Keys.K, button8);   //K
            _keyMap.Add(Keys.L, button7);   //L
            _keyMap.Add(Keys.Z, button22);  //Z
            _keyMap.Add(Keys.X, button21);  //X
            _keyMap.Add(Keys.C, button20);  //C
            _keyMap.Add(Keys.V, button19);  //V
            _keyMap.Add(Keys.B, button18);  //B
            _keyMap.Add(Keys.N, button17);  //N
            _keyMap.Add(Keys.M, button16);  //M
            _keyMap.Add(Keys.LWin, button42);  // LWin
            _keyMap.Add(Keys.Q, button32);  //Q
            _keyMap.Add(Keys.W, button31);  //W
            _keyMap.Add(Keys.E, button30);  //E
            _keyMap.Add(Keys.R, button29);  //R
            _keyMap.Add(Keys.T, button28);  //T
            _keyMap.Add(Keys.Y, button27);  //Y
            _keyMap.Add(Keys.U, button26);  //U
            _keyMap.Add(Keys.I, button25);  //I
            _keyMap.Add(Keys.O, button24);  //O
            _keyMap.Add(Keys.P, button23);  //P
            _keyMap.Add(Keys.D1, button59);  //1
            _keyMap.Add(Keys.D2, button58);  //2
            _keyMap.Add(Keys.D3, button57);  //3
            _keyMap.Add(Keys.D4, button56);  //4
            _keyMap.Add(Keys.D5, button55);  //5
            _keyMap.Add(Keys.D6, button54);  //6
            _keyMap.Add(Keys.D7, button53);  //7
            _keyMap.Add(Keys.D8, button52);  //8
            _keyMap.Add(Keys.D9, button51);  //9
            _keyMap.Add(Keys.D0, button63);  //0
            _keyMap.Add(Keys.OemCloseBrackets,button33);  //}
            _keyMap.Add(Keys.OemOpenBrackets, button12);  //{
            _keyMap.Add(Keys.OemPeriod, button14);  //>
            _keyMap.Add(Keys.Oemtilde, button60);  //Ё
            _keyMap.Add(Keys.Oemcomma, button15);  //<
            _keyMap.Add(Keys.OemMinus, button62);  //-
            _keyMap.Add(Keys.OemPipe, button37);  //|
            _keyMap.Add(Keys.Oemplus, button61);  //+
            _keyMap.Add(Keys.OemQuotes, button10);  //Ковычки
            _keyMap.Add(Keys.OemSemicolon, button11);  //Точка я запятой
            _keyMap.Add(Keys.OemQuestion, button13);  // Вопросительный знак Англ ракладка

            _keyMap.Add(Keys.Space, button44);  //Пробел
            _keyMap.Add(Keys.Escape, button77); //ESC
            _keyMap.Add(Keys.CapsLock, button35);  //CapsLock
            _keyMap.Add(Keys.Tab, button34);  //Tab

            _keyMap.Add(Keys.F1, button76); //F1
            _keyMap.Add(Keys.F2, button75);  //F2
            _keyMap.Add(Keys.F3, button74);  //F3
            _keyMap.Add(Keys.F4, button73);  //F4
            _keyMap.Add(Keys.F5, button72);  //F5
            _keyMap.Add(Keys.F6, button71);  //F6
            _keyMap.Add(Keys.F7, button70);  //F7
            _keyMap.Add(Keys.F8, button69);  //F8
            _keyMap.Add(Keys.F9, button68);  //F9
            _keyMap.Add(Keys.F10, button67);  //F10
            _keyMap.Add(Keys.F11, button66);  //F11
            _keyMap.Add(Keys.F12, button65);  //F12
            
            _keyMap.Add(Keys.Back, button64); //BACKSPACE
            
            _keyMap.Add(Keys.Delete, button78); //Delete

            _keyMap.Add(Keys.Down, button49); //Стрелка Вниз
            _keyMap.Add(Keys.Left, button47); //Стрелка Влево
            _keyMap.Add(Keys.Up, button50); //Стрелка ВВерх
            _keyMap.Add(Keys.Right, button48); //Стрелка Вправо

            _keyMap.Add(Keys.ShiftKey, button36); // Лeвый Shift
            _keyMap.Add(Keys.ControlKey, button40); //Левый CTRL
            _keyMap.Add(Keys.Menu, button43); //  Левый Alt

            _keyMap.Add(Keys.RShiftKey, button39); // Лeвый Shift
            _keyMap.Add(Keys.RControlKey, button45); //Левый CTRL
            _keyMap.Add(Keys.RMenu, button46); //  Левый Alt

            _keyMap.Add(Keys.Enter, button38); //Enter
            _keyMap.Add(Keys.Snapshot, button79);//Snapshot


            _keyMap.Add(Keys.PageUp, button94); //PageDown
            _keyMap.Add(Keys.PageDown, button93); //PageDown
            _keyMap.Add(Keys.Divide, button90);  // /
            _keyMap.Add(Keys.Multiply, button89); //*
            _keyMap.Add(Keys.Add, button100); //+ NumLock
            _keyMap.Add(Keys.Subtract, button92); //- NumLock
            _keyMap.Add(Keys.None, button92); //- NumLock
            _keyMap.Add(Keys.NoName, button92); //- NumLock

            _keyMap.Add(Keys.End, button95);  // End
            _keyMap.Add(Keys.Home, button96);  //Home
            _keyMap.Add(Keys.NumLock, button91); //NumLock
            _keyMap.Add(Keys.NumPad0, button98); //NumPad0
            _keyMap.Add(Keys.NumPad1, button82); //NumPad1
            _keyMap.Add(Keys.NumPad2, button81); //NumPad2
            _keyMap.Add(Keys.NumPad3, button41); //NumPad3
            _keyMap.Add(Keys.NumPad4, button85); //NumPad4
            _keyMap.Add(Keys.NumPad5, button84); //NumPad5
            _keyMap.Add(Keys.NumPad6, button83); //NumPad6
            _keyMap.Add(Keys.NumPad7, button88); //NumPad7
            _keyMap.Add(Keys.NumPad8, button87); //NumPad8
            _keyMap.Add(Keys.NumPad9, button86); //NumPad9

            foreach (Control item in Controls)
            {
                MethodInfo methodInfo = typeof(Control).GetMethod("SetStyle", BindingFlags.Instance | BindingFlags.NonPublic);
                methodInfo?.Invoke(item, new object[] { ControlStyles.Selectable, false });
            }
        }
      
        void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.ShiftKey:
                    button39.BackColor = Color.Gray;
                    break;
                case Keys.Delete:
                    button97.BackColor = Color.Gray;
                    break;
                case Keys.Enter:
                    button99.BackColor = Color.Gray;
                    break;
                case Keys.Menu:
                    button45.BackColor = Color.Gray;
                    break;
                case Keys.ControlKey:
                    button46.BackColor = Color.Gray;
                    break;
            }
            try
            {
                Control button = _keyMap[e.KeyCode];
                button.BackColor = Color.Gray;
            }
            catch
            {
               
            }
            textBox2.Text = (System.Environment.TickCount - time).ToString();
            up = false;
          
         
        }
    

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
          switch(e.KeyCode)
            {
                case Keys.ShiftKey:
                    button39.BackColor = Color.Green;
                    break;
                case Keys.Delete:
                    button97.BackColor = Color.Green;
                    break;
                case Keys.Enter:
                    button99.BackColor = Color.Green;
                    break;
                case Keys.Menu:
                    button45.BackColor = Color.Green;
                    break;
                case Keys.ControlKey:
                    button46.BackColor = Color.Green;
                    break;
            }

            if (!up)
            {
                up = true;
                time = System.Environment.TickCount;
                

            }
            foreach (Control item in Controls)
            {
                MethodInfo methodInfo = typeof(Control).GetMethod("SetStyle", BindingFlags.Instance | BindingFlags.NonPublic);
                methodInfo?.Invoke(item, new object[] { ControlStyles.Selectable, false });
            }
            try
            {
                Control button = _keyMap[e.KeyCode];
                button.BackColor = Color.Green;
                textBox1.Text = " < " + e.KeyCode + " > " + textBox1.Text;
            }
            catch
            {
                panel1.Visible = true;
                panel1.BackColor = Color.Red;
                textBox3.Text = "Ошибка!!!";
                timer1.Start();
              
            }
           
          
        }
        private void Button80_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            Close();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            textBox3.Text=" " ;
            panel1.Visible = false;
        }
    }
}

Ответы (0 шт):