2017-01-25 34 views
0

今天我偶然發現LostFocus事件中的TextBox事件沒有觸發問題。大多數客戶沒有任何問題,但其中一小部分報告出乎意料的行爲。經過一番研究後,我發現沒有出現問題的客戶用鼠標點擊「確定」按鈕,而其他客戶端在其鍵盤上按下Enter。 「Ok」按鈕是Form上的默認按鈕,因此按Enter應該可以正常工作。問題是按下Enter不會觸發焦點文本框上的LostFocus事件。使用默認按鈕時,文本框lostfocus事件不會觸發

經過一番谷歌搜索後,很明顯,這是默認按鈕的預期行爲。重點不會丟失TextBox,並且不會點擊它,而是在運行事件的代碼背後的代碼。

如何在使用默認按鈕時觸發LostFocus事件?

回答

0

一個簡單的黑客工作對我來說,只要將Click事件觸發時,將焦點設置爲「Ok」按鈕。這樣當前的控件就會自動運行它的LostFocus事件。設置焦點後別忘了放置額外的DoEvents。否則,LostFocus事件在您的其他代碼執行後觸發。

Private Sub cmdOk_Click() 
    cmdOK.SetFocus 
    DoEvents 
    'Run your other code 
End Sub 
相關問題