【发布时间】:2014-05-09 12:56:13
【问题描述】:
这可能是一个简单的问题。我是 C#(和大多数编程)的新手,我正在尝试制作一个由两个文本框组成的程序。这些文本框中的信息会经常被删除,并且需要输入新信息,因此需要快速。为方便起见,我试图让退格键重新聚焦在前一个文本框上,而不是使用 Shift+Space 或单击。这就是我所拥有的。程序运行了,但是下面的代码似乎并没有按照我的意图去做。
if (e.KeyCode == Keys.Back && textBox2.TextLength == 0)
textBox1.Focus();
所以,当 textbox2 有 0 个字符并且随后键入退格键时,我希望它移回 textbox1。谢谢你的帮助。
【问题讨论】:
-
这段代码什么时候运行?
-
正如@Yahya 指出的那样,在哪种情况下你会这样做?另外,该代码的 intended 是什么,但没有发生?我会用
TextChanged来做,并且只会检查textBox2.Text.Length == 0。在任何情况下,当textBox2内容更改 并且变为空(退格、全选和删除等)时,这会将焦点移至textBox1。 -
我在 KeyUp 中这样做,但尝试了 TextChanged。如果我只使用 TextChanged 下的 textBox2.Text.Length == 0,则按一次退格键会导致文本长度变为零,并且光标会立即转到 textBox1。如果您需要删除 textBox2 中的 1 个字符并重新输入,这会很痛苦。它要求您点击选项卡再次移回 textBox2。如果 textBox2 中有 1 个字符,我实际上是在按两次退格键后使其移回 textBox1。第一个清除字段,第二个将光标移动到 textBox1。