нажатием клавиши перевести фокус на нужный элемент

Пользователь заполняет поля ввода цифрами, расположенными в правой части клавиатуры, разумеется правой рукой. Хотя, есть индивидуумы…
Что бы не нажимать клавишу Tab левой рукой, она может быть чем-то занята (кушает a red apple or smoke), правая рука нажимает клавишу Enter и заметьте, нужный элемент становится активным! И пользователь продолжает дальше, с занятой левой рукой, правой вводить цифры.
Из личного опыта. Когда-то работал оператором ПК. Вбиваешь данные в расходную накладную в программе 1С Бухгалтерия. В левой руке линейка, на выбранном товаре, а правой рукой набираешь количество и жмешь 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 _0026 {
  •  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_KeyDown(object sender, KeyEventArgs e) {
  •    if(e.KeyCode == Keys.Enter) {
  •     textBox2.Select();
  •     //textBox2.Focus();
  •     e.Handled = true;
  •    }
  •   }
  •   //текстовое поле Конечные показания  активирует текстовое поле Цена за 1 Квт/час
  •   private void textBox2_KeyDown(object sender, KeyEventArgs e) {
  •    if(e.KeyCode == Keys.Enter) {
  •     textBox3.Select();
  •     //textBox3.Focus();
  •    }
  •   }
  •   //текстовое поле Цена за 1 Квт/час активирует кнопку Расчитать
  •   private void textBox3_KeyDown(object sender, KeyEventArgs e) {
  •    if(e.KeyCode == Keys.Enter) {
  •     button1.Select();
  •     //button1.Focus();
  •    }
  •   }
  •   //текстовое поле Сумма активирует кнопку Очистить
  •   private void textBox4_KeyDown(object sender, KeyEventArgs e) {
  •    if(e.KeyCode == Keys.Enter) {
  •     button2.Select();
  •     //button2.Focus();
  •    }
  •   }
  •  }
  • }