2016-01-11 59 views
1

我正在开发一个项目,其中包含验证输入。 在它旁边有一组您可以按下的按钮。当您对输入进行对焦时,将会显示按钮。但是当你点击其中一个按钮时,输入焦点将消失,验证将开始并且按钮将被隐藏。防止重点控制

我想要的是输入焦点在任何时候都不会丢失。

单击它们时是否可以不激活/聚焦按钮,还是有可能在不失去输入的情况下强制聚焦输入?

我已经试过这在控制,但似乎只使用表单:

Const WS_EX_NOACTIVATE As Integer = &H8000000 
Const WS_EX_TOOLWINDOW As Integer = &H80 

Protected Overrides ReadOnly Property CreateParams As CreateParams 
    Get 
     Dim ret As CreateParams = MyBase.CreateParams 
     ret.ExStyle = ret.ExStyle Or WS_EX_NOACTIVATE Or WS_EX_TOOLWINDOW 
     Return ret 
    End Get 
End Property 
+1

[如何使用键盘按键停止按下按钮,如“空格键或回车键”。 C#](http://stackoverflow.com/questions/32823525/how-to-stop-pressing-button-using-keyboard-keys-like-spacebar-or-enter-c-shar/32825190#32825190),[如何创建一个不会吸引键盘焦点的按钮](http://stackoverflow.com/questions/10077945/how-to-create-a-winform-with-buttons-that-will-never-attract-keyboard-焦点)。将'ControlStyles.Selectable'设置为'false'也可以防止用鼠标点击时获得焦点。 –

+0

将按钮的CausesValidation属性设置为False。 –

回答

0

设置按钮的TabStop property为false。

通过将此设置为false,您可以在用户选项卡时阻止他们获得焦点,但他们仍然是可点击的。

1

您可以创建自定义的按钮,使非可选:

Public Class MyButton 
    Inherits Button 

    Public Sub New() 
     SetStyle(ControlStyles.Selectable, False) 
    End Sub 

End Class 

如果你不想创建自定义的控制,为您的正常按钮设置CausesValidation = False,它会获得焦点,但没有按”不会导致验证。