【发布时间】:2016-01-11 19:57:58
【问题描述】:
我正在做一个项目,我有一个带有验证的输入。 在它旁边有一组可以按下的按钮。当您聚焦输入时,将显示按钮。但是,当您单击其中一个按钮时,输入的焦点消失了,验证将开始,按钮将被隐藏。
我想要的是输入焦点在任何时候都不会丢失。
是否可以在单击按钮时不激活/聚焦按钮,或者是否可以强制聚焦而不丢失输入?
我在控件上试过这个,但似乎只在一个表单上工作:
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
【问题讨论】:
-
How to stop pressing button using keyboard keys like “Spacebar or Enter”. C#, How to create a winform with buttons that will never attract keyboard focus。将
ControlStyles.Selectable设置为false还可以防止在用鼠标单击时获得焦点。 -
将按钮的 CausesValidation 属性设置为 False。