我希望在文本框中存在插入符号时将焦点设置在按钮上,用户仍然可以将数据输入到文本框中。但是当用户按下回车键时,按下按钮将被模拟。
我目前正在通过处理onKeyDown事件并检查输入密钥来解决此问题。但问题是没有线索让用户理解这一点,因为按钮周围没有蓝色边框,表示按下按钮。
以下是我想要实现的示例(用户可以在焦点开启时在文本框中输入文本:
我试图在google和StackOverflow上搜索但找不到任何相关结果。
答案 0 :(得分:1)
这是Windows的基本原则。它不可能同时聚焦2个控件(窗口)。
所以重点应放在文本框内。但是您可以通过将ok按钮设置为表单的AcceptButton
来获得所需的可视指示(您可能还需要将取消按钮设置为CancelButton
)。
在表单构造函数中,加载事件或使用designer:
this.AcceptButton = okButton;
无需处理KeyDown
事件 - 只要文本框不是多行,在焦点位于其中时按Enter
将生成ok按钮单击。当您按CancelButton
时,按钮设置为ESC
同样适用。