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

Один из вариантов, для чего это может понадобиться — текстовое поле с паролем. Количество знаков в пароле, например 6. Пользователь ввел пароль и автоматически перешел к следующему элементу управления.
Это выполняется с помощью события TextChanged и метода SelectNextControl().
Скрыть

Показать

Копировать
  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 _0028 {
  •  public partial class Form1 : Form {
  •   public Form1() {
  •    InitializeComponent();
  •   }
  •   private void button1_Click(object sender, EventArgs e) {
  •    if(textBox2.Text == "123456") {
  •     BackColor=Color.FromArgb(240, 240, 240);
  •     MessageBox.Show("Пароль правильный! ");
  •    }
  •    else {
  •     BackColor=Color.FromArgb(255, 67, 67);
  •     MessageBox.Show("Пароль не правильный!");
  •    }
  •   }
  •   private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
  •    if(e.KeyChar == (char)Keys.Enter) {
  •     textBox2.Select();
  •     e.Handled = true;
  •    }
  •   }
  •   private void textBox2_TextChanged(object sender, EventArgs e) {
  •    //если длина текста равна 6 символам, перейти к следующему элементу
  •    if(textBox2.TextLength == 6) {
  •     //1 аргумент - объект, с которог нужно начать поиск
  •     //2 аргумент - true, перемещаем вперед, false перемещаем назад
  •     //3 аргумент - true игнорирует TabStop, false не игнорирует
  •     //4 аргумент - true — включает дочерние вложенные элементы, false — нет
  •     //5 аргумент - true — продолжает поиск после конечного элемента дальше, false — нет
  •     SelectNextControl(ActiveControl, true, true, false, false);
  •    }
  •   }
  •  }
  • }