如何在WinForm中同时设置文本框和按钮的焦点

时间:2016-12-18 13:21:38

标签: winforms user-interface

我希望在文本框中存在插入符号时将焦点设置在按钮上,用户仍然可以将数据输入到文本框中。但是当用户按下回车键时,按下按钮将被模拟。

我目前正在通过处理onKeyDown事件并检查输入密钥来解决此问题。但问题是没有线索让用户理解这一点,因为按钮周围没有蓝色边框,表示按下按钮。

以下是我想要实现的示例(用户可以在焦点开启时在文本框中输入文本:
Dialog Box with focus on button and caret in textbox

我试图在google和StackOverflow上搜索但找不到任何相关结果。

1 个答案:

答案 0 :(得分:1)

这是Windows的基本原则。它不可能同时聚焦2个控件(窗口)。

所以重点应放在文本框内。但是您可以通过将ok按钮设置为表单的AcceptButton来获得所需的可视指示(您可能还需要将取消按钮设置为CancelButton)。

在表单构造函数中,加载事件或使用designer:

this.AcceptButton = okButton;

无需处理KeyDown事件 - 只要文本框不是多行,在焦点位于其中时按Enter将生成ok按钮单击。当您按CancelButton时,按钮设置为ESC同样适用。