【发布时间】:2015-05-13 11:33:50
【问题描述】:
是否可以让文本框忽略 Ctrl + character 功能并重新分配 ctrl 键的不同用途?
情况:我在一个表单上有多个文本框。理想情况下,我希望文本框在输入单个字符后从一个文本框跳到另一个文本框。但是文本框可以有多个输入,在这种情况下,我希望用户在输入多个字符时按住 ctrl 以留在文本框上。
基本上,我希望我的 ctrl(如果按住的话)阻止文本框跳跃。
我尝试使用OnKeyDown、OnKeyUp 和TextChanged 的组合来处理按下 Ctrl 键时的事件,但最后我无法输入任何内容按住 Ctrl 键后的数据。有没有办法解决这个问题?
这是因为 95% 的情况下它始终是 1 个字符。因此,为了快速遍历文本框,用户将点击单个字符。但是,如果用户希望输入 2 位数字,他们可以按住 Ctrl (因此它不会跳转到下一个文本框)并根据需要输入 2 位数字。
【问题讨论】:
-
您当然可以以某种方式将
Ctrl+SomeKey转换为字符(参见this 等),但是您确定自己在做什么吗?在按下Ctrl时,我听起来绝对不舒服(对我来说)。目前尚不清楚您要实现什么场景,以及为什么TextBox在输入一个字符后会改变焦点。您能否提供一些代码并更好地解释它?也许有更好的解决方案。 -
您在 UI 上执行的第一个可用性研究应该针对您的队友。希望他们可以畅所欲言,告诉你他们的想法。在不太可能的情况下不会阻止您,那么至少选择一个不会改变字符代码的键。没有人能很好地使用 ScrollLock 键。
-
@ Sinartr - 请参阅编辑了解这种奇怪情况背后的原因! :)
-
你说
digits。Shift似乎是一个更容易使用的键。很容易将#变成3。 -
我明白你在做什么。使用设置为 150 毫秒的计时器怎么样?因此,只有在延迟过去并且在该时间范围内没有输入其他字符后,焦点才会转移。如果输入新字符,则重置计时器,使其再次从 0 计数到 150 毫秒。