2016-01-11 57 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,它會獲得焦點,但沒有按」不會導致驗證。