2017-08-30 52 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