我有一个窗体覆盖整个屏幕。我有一个textbox
它通常是隐藏的,但当用户点击,拖动鼠标,然后离开时出现。之后,用户可以在文本框中输入任何值。一旦进入,理想情况下,用户应该能够点击文本框外,然后恢复正常的服务。textbox不失焦
正常服务我的意思是表单应该开始获取所有事件。到目前为止我所做的是在TextBox的KeyDown事件上;当按下ESC键,我已经将焦点设置到的主要形式是这样的:
this.Focus(); //where this is mainform.
但是,这似乎并没有工作,因为Textbox
仍保持接收所有的按键。我有一个KeyDown
事件处理程序,用于Form
和Textbox
,并且我已检查所有KeyDown
事件传递给TextBox。我有一个TextBox
离开事件处理程序以及永远不会被调用。
此TextBox
是窗体上的唯一控件,主窗体用于绘制图形(如果有的话)。
那么,如何让这个TextBox
在用户点击它之外时失去焦点。
这个问题在这里得到解答:[http://stackoverflow.com/questions/1140250/how-to-remove-focus-from-a-textbox-in-c-winforms][1] [1]:http://stackoverflow.com/questions/1140250/how-to-remove-focus-from-a-textbox-in-c-winforms – mmorel
按照@ mmorel1的链接,你需要有另一个控件可见= true,但不在表格范围内。例如Textbox1.Left = -20; –
@Jeremy Thompson:在这种情况下,焦点将转移到该文本框,我的主窗体将停止接收密钥。例如,在mainform上的Escape按钮上,我隐藏了表单。那是不可能的。任何想法如何做到这一点? – Aamir