我正在开展一个项目,我有一个输入验证。 旁边有一组可以按的按钮。聚焦输入时,将显示按钮。但是当你点击其中一个按钮时,输入的焦点消失了,验证将开始,按钮将被隐藏。
我想要的是输入焦点在任何时候都不会丢失。
单击按钮时是否可以不激活/聚焦按钮,还是可以在不丢失的情况下强制对焦输入?
我在Control上试过这个,但似乎只在表单上工作:
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
答案 0 :(得分:1)
您可以创建自定义按钮并使其不可选:
Public Class MyButton
Inherits Button
Public Sub New()
SetStyle(ControlStyles.Selectable, False)
End Sub
End Class
如果您不想创建自定义控件,请将CausesValidation = False
设置为普通按钮,它将获得焦点,但不会导致验证。
答案 1 :(得分:0)
将按钮的TabStop
property设置为false。
通过将此设置为false,您可以在用户标签时阻止他们获得焦点,但他们仍然可以点击。