在我的C#Windows窗体应用程序中,我在窗体中有许多TextBox控件,用户输入要保存在数据库中的数据。我希望用户能够通过向上和向下箭头将焦点更改为每个TextBox .I可以为向下箭头执行此操作,因此当用户按下向下箭头时,焦点将设置为具有较高tabindex到SendKey(“Tab”)的文本框。但是我不能为UP箭头这样做,所以当用户按下向上箭头焦点设置为具有较低tabindex的文本框时,请帮忙吗?
答案 0 :(得分:9)
您可以使用Control.SelectNextControl()
而不是使用SendKey(),并使用forward=false
向后搜索。
答案 1 :(得分:4)
你可以尝试像SendKeys.Send("+{TAB}");
那样会模仿Shift键+标签,所以应该带你回去
答案 2 :(得分:4)
在文本框之间移动的最佳方法是使用 Control.SelectNextControl + forward参数。
检查下面的代码,每次用户在表格上按下键时,下一个控件都会被激活:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Control ctl;
ctl = (Control)sender;
if (e.KeyCode == Keys.Down )
{
ctl.SelectNextControl(ActiveControl, true, true, true, true);
}
else if (e.KeyCode == Keys.Up)
{
ctl.SelectNextControl(ActiveControl, false, true, true, true);
}
}
不要忘记将表单的keypreview设置为true。
答案 3 :(得分:2)
您可以发送Shift + Tab,查阅有关如何使用SendKeys执行此操作的文档
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx