嗨,我有一个 C# winform 应用程序,其中包含一个特定的表单,其中填充了许多文本框。我想通过按右箭头键来模仿与按 Tab 键相同的行为。我不确定该怎么做。
我根本不想改变 tab 键的行为,只要在那个表单上用右箭头键做同样的事情。
任何人都可以提供任何建议吗?
您应该覆盖表单中的 OnKeyUp 方法来执行此操作...
protected override void OnKeyUp(KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
Control activeControl = this.ActiveControl;
if(activeControl == null)
{
activeControl = this;
}
this.SelectNextControl(activeControl, true, true, true, true);
e.Handled = true;
}
base.OnKeyUp(e);
}
我认为这将完成您的要求:
private void form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
Control activeControl = form1.ActiveControl;
// may need to check for null activeControl
form1.SelectNextControl(activeControl, true, true, true, true);
}
}
您可以使用表单上的 KeyDown 事件来捕获击键,然后执行您想要的任何操作。例如:
private void MyForm_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Right)
{
this.SelectNextControl(....);
e.Handled = true;
}
}
不要忘记将表单上的 KeyPreview 属性设置为 True。