我有一个项目,如果当前字段为空但用户继续删除,我需要关注上一个字段。就像您在某处键入 CD-Key 一样。您有几个块,每个块有 4-5 个符号。例如,如果您擦除第 3 个文本框,您将在第 3 个文本框变空后立即被迫返回到第二个文本框。
if (textBox2.Text.Length == 0)
{
Keyboard.Focus(textBox1);
}
此代码工作正常,但考虑到我有另一个 onfocus 事件,所以 textBox2 一旦获得焦点就会变为空,并且由于焦点上方的代码强制返回到 textBox1。所以它是循环的。
如果我做对了,我需要抓住按下删除按钮,对吗?但这是我的问题。我不知道如何插入此代码
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
if (textBox2.Text.Length == 0)
{
Keyboard.Focus(textBox1);
}
}
}
在这个函数里面:
private void textBox2_TextChanged(object sender, TextChangedEventArgs e)
{
if (textBox2.Text.Length == 2)
{
Keyboard.Focus(textBox3);
}
// HERE I NEED SOMETHING LIKE ELSE IF (e.Key == Key.Delete) {...
}
请帮帮我。UPD。我尝试了另一种解决方案,但它不起作用:
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
if (textBox2.Text.Length == 0)
{
Keyboard.Focus(textBox1);
}
}
}