整容说文库 > 程序代码 > 教育资讯

怎么屏蔽TextBox的鼠标右键,最好有代码看看

来源:学生作业帮助网 编辑:整容说文库 时间:2020/12/04 15:40:39 程序代码
怎么屏蔽TextBox的鼠标右键,最好有代码看看程序代码
怎么屏蔽TextBox的鼠标右键,最好有代码看看
重载textbox,onmouseup的时候判断如果是右键,就不mybase了。
试了试,不行 -_-#
等待高人
在wndprc事件中截获鼠标消息,如是右键就return
有没有代码?看看
Private Const WM_RBUTTONDOWN As Integer = &H204
    Private Const WM_RBUTTONUP As Integer = &H205

    Private Class TextBoxMouseClickFilter
        Implements System.Windows.Forms.IMessageFilter

        Dim ht As New Hashtable

        Public Sub SetTextBoxHandler(ByVal hwnd As IntPtr)
            ht.Add(hwnd, Nothing)
        End Sub

        Public Function PreFilterMessage(ByRef msg As System.Windows.Forms.Message) As Boolean Implements System.Windows.Forms.IMessageFilter.PreFilterMessage
            If (msg.Msg = WM_RBUTTONDOWN Or msg.Msg = WM_RBUTTONUP) And ht.Contains(msg.HWnd) Then
                Return True
            End If
            Return False
        End Function

    End Class

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim filter As New TextBoxMouseClickFilter
        '将所有TextBox加入到被调度控件列表
        For Each c As Control In Me.Controls
            If c.GetType.Name = GetType(TextBox).Name Then
                filter.SetTextBoxHandler(c.Handle)
            End If
        Next
        '将filter添加到应用程序的消息泵中
        System.Windows.Forms.Application.AddMessageFilter(filter)
    End Sub
程序代码