是否可以让文本框忽略 Ctrl + character 函数并为ctrl键重新分配不同的用途?
情况:我在表单上有多个文本框。理想情况下,我希望文本框在输入单个字符后从一个文本框跳转到另一个文本框。但是,文本框可以有多个输入,在这种情况下,我希望用户在输入多个字符时保持 ctrl 保留在文本框中。
基本上,我想要我的 ctrl (如果按住)来阻止文本框跳跃。
我尝试使用OnKeyDown
,OnKeyUp
和TextChanged
事件的组合来处理何时按下 Ctrl 键,但最后,按住 Ctrl 键后,我无法输入任何数据。有办法解决这个问题吗?
原因是因为95%的时间总是1个字符。因此,为了快速遍历文本框,用户将击中单个字符。然而,在用户不想输入2位数的情况下,他们可以按住 Ctrl (因此它不会跳转到下一个文本框)并根据需要输入2位数。
答案 0 :(得分:1)
就像评论者所说的那样,在UI意义上,这可能是一种更好的方法。你会按CTRL来防止切换文本框是一种奇怪的行为。话虽如此,在KeyDown中使用以下内容可以获得您想要做的事情。
if (!(e.Control && char.IsLetterOrDigit((char) e.KeyCode)))
{
return;
}
txtBox.Text += (new KeysConverter()).ConvertToString(e.KeyCode);
e.Handled = true;