удаление звукового сигнала в TextBox при нажатии на клавишу Enter

В предыдущем примере было показано, как с помощью нажатия клавиши, например Enter, переходить к нужному элементу. Раздражение вызывал системный звук. В этом примере мы удалим этот звук.
Текстовое поле имеет особенность издавать системный звук, при нажатии клавиши, когда оно в фокусе.
Что бы убрать звук, нужно перехватить нажатие этой клавиши.
Скрыть

Показать

Копировать
  Counter.cs  
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  •  
  • class Counter {
  •  ushort showStart;
  •  ushort showEnd;
  •  decimal price;
  •  public Counter(string arg0, string arg1, string arg2) {
  •   ushort.TryParse(arg0, out showStart);
  •   ushort.TryParse(arg1, out showEnd);
  •   decimal.TryParse(arg2, out price);
  •  }
  •  public ushort ResultShow() {
  •   return (ushort)(showEnd - showStart);
  •  }
  •  public decimal Sum() {
  •   return Math.Round((decimal)(ResultShow() * price) , 2);
  •  }
  • }
Скрыть

Показать

Копировать
  Form1.cs  
  • 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 _0027 {
  •  public partial class Form1 : Form {
  •   public Form1() {
  •    InitializeComponent();
  •   }
  •   //кнопка Расчитать вычисляет сумму и активирует текстовое поле Сумма
  •   private void button1_Click(object sender, EventArgs e) {
  •    Counter C = new Counter(textBox1.Text, textBox2.Text, textBox3.Text);
  •    textBox4.Text = C.Sum().ToString();
  •    textBox4.Select();
  •    //textBox4.Focus();
  •   }
  •   //кнопка Очистить очищает все текстовые поля и активирует текстовое поле Начальные показания
  •   private void button2_Click(object sender, EventArgs e) {
  •    //кнопка очищает все текстовые поля
  •    foreach(Control i in Controls) {
  •     if(i.GetType() == typeof(TextBox)) {
  •      i.Text = string.Empty;
  •     }
  •    }
  •    textBox1.Select();
  •    //textBox1.Focus();
  •   }
  •   //текстовое поле Начальные показания активирует текстовое поле Конечные показания
  •   private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
  •    if(e.KeyChar == (char)Keys.Enter) {
  •     textBox2.Select();
  •     //textBox2.Focus();
  •     //перехватываем нажатие клавиши, удаляется звук
  •     e.Handled = true;
  •    }
  •   }
  •   //текстовое поле Конечные показания активирует текстовое поле Цена за 1 Квт/час
  •   private void textBox2_KeyPress(object sender, KeyPressEventArgs e) {
  •    if(e.KeyChar == (char)Keys.Enter) {
  •     textBox3.Select();
  •     //textBox3.Focus();
  •     //перехватываем нажатие клавиши, удаляется звук
  •     e.Handled = true;
  •    }
  •   }
  •   //текстовое поле Цена за 1 Квт/час активирует кнопку Расчитать
  •   private void textBox3_KeyPress(object sender, KeyPressEventArgs e) {
  •    if(e.KeyChar == (char)Keys.Enter) {
  •     button1.Select();
  •     //button1.Focus();
  •     //перехватываем нажатие клавиши, удаляется звук
  •     e.Handled = true;
  •    }
  •   }
  •   //текстовое поле Сумма активирует кнопку Очистить
  •   private void textBox4_KeyPress(object sender, KeyPressEventArgs e) {
  •    if(e.KeyChar == (char)Keys.Enter) {
  •     button2.Select();
  •     //button2.Focus();
  •     //если в текстовом поле свойство ReadOnly = true, делать перехват клавиши не обязательно
  •     //перехватываем нажатие клавиши, удаляется звук
  •     e.Handled = true;
  •    }
  •   }
  •  }
  • }