我现在有一个这样的问题,我要把Text控件的Text设置为不可写只可读,我想用LOCKED属性,可是这样的话还是可以用“粘贴”还是可以改变文本框的内容,大家帮我想想办法,谢谢!

解决方案 »

  1.   

    你看这行嘛!
    先得到哪个文本框的值,在第的Change事件里,加入 文本.值=先前得到的值
      

  2.   

    在Form_Load里面加        
    prvWinProc = GetWindowLong(Text1.hwnd, GWL_WNDPROC)
     '设定Combo1的window Procedure到wndproc
    ret = SetWindowLong(Text1.hwnd, GWL_WNDPROC, AddressOf DoNothing)Form……Unload里加
    ret = SetWindowLong(Text1.hwnd, GWL_WNDPROC, prvWinProc)共用模块里加Public prvWinProc  As Long
    Public ret         As LongPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public 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
    Public Const WM_PASTE = &H302
    Public Const GWL_WNDPROC = (-4)Public Function DoNothing(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        
        If Msg = WM_PASTE Then
        'Debug.Print Form1.hwnd & "ssf" & hwnd
           Msg = 0
        End If
       DoNothing = CallWindowProc(prvWinProc, hwnd, Msg, wParam, lParam)
    End Function