2017-02-08 86 views
-4

我想要的形式啓動時阻止鍵盤輸入,但它不能正常工作,請檢查我的代碼:如何阻止鍵盤輸入在VB.net

Public Class Form2 

    Public Declare Function BlockInput Lib "User32" (ByVal fBlock As Integer) As Integer 

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    End Sub 

    Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint 

    End Sub 

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged 

     Dim name As String 
     name = "12345" 
     If (name = TextBox1.Text) Then 
      Me.Close() 
     End If 
    End Sub 

    Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click 

     TextBox1.Visible = True 
     TextBox1.Focus() 

    End Sub 

    Private Sub TextBox2_Click_1(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox2.MouseClick 
     BlockInput(1) 
    End Sub 

    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged 

    End Sub 
End Class` 
+0

您是否需要全局阻止輸入或僅用於文本框? –

+0

是的,我想要全局阻止鍵盤輸入 – rayees

+0

您需要一個鍵盤鉤子。這個單一的函數調用不會削減它。 –

回答

0

我用「groupbox.enabled = False「,以阻止程序用戶在我的表單上編輯任何內容。然後,您可以再次啓用groupbox,以滿足某些條件。我在VB.net編程中使用的另一種方法是設置只讀屬性(我曾經習慣自動填充系統日期以防止用戶輸入錯誤的日期)我不知道這些方法中的任何一種可能幫你?