可能很简单,有十几个文本框,每个文本框都包含一个字符。我正在尝试处理删除键以清除当前文本框中的当前文本,然后我希望它通过go减去选项卡索引并返回编辑上一个文本框。我不知道如何引用当前文本框的选项卡索引并返回一个。转到下一个我只是为'TAB'执行发送键。
在我的keyprocess函数中我有:
//DEL goes back one text box and clears it
if (keyData == (Keys.Delete))
{
//Clear textbox
//Go back one textbox to edit
return true;
}
一旦我完成了我正在发送的文本框的编辑:
SendKeys.Send("{TAB}");
也许有更好的方法来做到这一点。
答案 0 :(得分:2)
您可以使用GetNextControl方法找到之前的TextBox
:
if (e.KeyCode == Keys.Delete)
{
var textBox = ((TextBox) sender);
textBox.Text = string.Empty;
var previous = textBox.Parent.GetNextControl(textBox, false);
if (previous != null)
previous.Focus();
e.Handled = true;
}
或者@Mr Lister建议你可以发送SHIFT + TAB组合键:
SendKeys.Send("+{TAB}");
但这是一个有点愚蠢的解决方案。