2017-08-30 42 views
0

在VB項目,我有3個按鈕(複選框帶按鈕appeareance)...如果我按其中1它保持選中狀態(聚焦),散焦按鈕,它

我將控制程序的小RF鍵盤,我忍受按空格鍵非常容易!

我該如何取消選擇(鬆開焦點)的控制,以避免空間按下意外激活 - 停用? 我試過加入一個隱藏按鈕,聚焦它的檢查按鈕」的單擊事件......這樣的:

​​

,但不工作!後來我試着集中的MainForm但此外,它不工作

form1.focus() 

也是我試過!

Form1.select() 

,但仍然沒有工作點擊(cheking)按鈕它可以很容易選中再次單擊空格鍵後!至極是避免意外不檢查的正確方法是?

謝謝。

+0

只有用戶可以與之交互的東西才能獲得焦點 - 這會排除隱藏的控件和表單。將焦點移到另一個控件 – Plutonix

回答

1

看來您正在使用WinForm。表格作爲名爲ActiveControl的屬性,可以設置爲Nothing(null)。在CheckBox.CheckedChanged處理程序中這樣做,將取消對焦CheckBox並防止您遇到的問題。

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged 
    Me.ActiveControl = Nothing 
    ' any other necessary code 
End Sub 
0

爲什麼不只是禁用SPACEENTER鍵完全用於您的複選框?

'This contains the list of keys that should be disabled from interacting with your check boxes. 
'You can add or remove keys from this as you like. 
Dim DisabledKeys As New HashSet(Of Keys) From { 
    Keys.Enter, Keys.Space 
} 

Private Sub CheckBoxes_KeyDown(sender As Object, e As KeyEventArgs) Handles CheckBox1.KeyDown, CheckBox2.KeyDown, CheckBox3.KeyDown 
    e.SuppressKeyPress = DisabledKeys.Contains(e.KeyCode) 
End Sub