如果改用lock的话,鼠标可以选取里面的内容,我不想让鼠标操作里面的内容,还有键盘操作,我想要的结果就是题目内容

解决方案 »

  1.   

    有点困难,可能要借助API了。
      

  2.   

    设置richtextbox的enabled属性为true,locked属性为true:
    窗体上一个richtextbox:
    Option ExplicitPrivate Sub Form_Load()
        Hook Me.RichTextBox1.hwnd
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        UnHook Me.RichTextBox1.hwnd
    End Sub
    模块代码:
    Option Explicit
    Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Const GWL_WNDPROC = -4
    Public Const WM_SYSCOMMAND = &H112
    Public Const WM_NCRBUTTONDOWN = &HA4
    Public Const SC_CLOSE = &HF060&
    Public Const EM_SETSEL = &HB1
    Public Const WM_LBUTTONDOWN = &H201Global lpPrevWndProc As LongPublic Sub Hook(ByVal hwnd As Long)
        lpPrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
    End SubPublic Sub UnHook(ByVal hwnd As Long)
        Dim lngReturnValue As Long
        lngReturnValue = SetWindowLong(hwnd, GWL_WNDPROC, lpPrevWndProc)
    End SubFunction WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
       If uMsg = WM_LBUTTONDOWN Then
            Debug.Print "haha"
       Else
            WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
       End If
    End Function