我有一個窗體覆蓋整個屏幕。我有一個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