1.最简单的方法就是对每个控件操作后,指定焦点到下一个空间。此种方法适宜少量控件操作,否则操作过多控件代码量也相应增多。
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
textBox4.Focus();
}
}
2 .针对整个窗口的TabStop=true的控件。首先要设置form的属性keypreview设为true 。
(1)没有用户控件的情况
private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar==(char)13)
{
e.Handled = true;//设置该值处理过KeyPress
this.SelectNextControl(this.ActiveControl,true,true,false,true); //下一个控件
}
}
或者:
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{Tab}");
e.Handled = true;
}
base.OnKeyDown(e);
}
(2)有用户控件时的情况
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
e.Handled = true;
if (userControl11.ActiveControl!=null)
{
this.SelectNextControl(userControl11.ActiveControl, true, true, true, true);
}
else {
this.SelectNextControl(this.ActiveControl, true, true, true, true);
}
}
}