Jag har en sträng i en Textbox. När man klickar i Textboxen Jag känner inte till något lätt sätt att göra det på. Men det går att göra med Subclassing. Vilket har nackdelen att det inte låter dig stega igenom dit projekt. För då kommer ett fel upstå och VB kommer att stängas. Om man inte kapslar koden i en DLL. Om du absolut måste göra det så kan du använda följande kod:Förhindra mus-klick händelse i en Textbox
    
    
ska klickhändelsen ignoreras och insättningspunkten ska stanna
i sitt ursprungliga läge. 
Fråga 1: hur ser koden ut som ignorerar denna klickhändelse ?
Fråga 2: har du en bra länk på Internet med sådana koder ?
GunnarSv: Förhindra mus-klick händelse i en Textbox
    
    
(Jag hindrar bara händelser för vänsterklick. Om du vill hindra alla typer och klick, lägger du bara till  WM_MBUTTONDBLCLK, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_RBUTTONDBLCLK, WM_RBUTTONDOWN, WM_RBUTTONUP på första case raden.)
'Module1
Option Explicit
Private Const GWL_WNDPROC As Long = (-4)
Private Const WM_DESTROY = &H2
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const PropertyName As String = "PrevWndFunc"
Private Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hWnd As Long, ByVal lpString As String) As Long
Private Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hWnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
Private Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hWnd As Long, ByVal lpString As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private 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 Function DisableMouseSelect(TextBox As TextBox) As Boolean
Dim lReturn As Long
    lReturn = GetProp(TextBox.hWnd, PropertyName)
    If lReturn Then
        DisableMouseSelect = False
    Else
        lReturn = SetWindowLong(TextBox.hWnd, GWL_WNDPROC, AddressOf WindowProc)
        If lReturn Then
            SetProp TextBox.hWnd, PropertyName, lReturn
            DisableMouseSelect = True
        Else
            DisableMouseSelect = False
        End If
    End If
End Function
Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim lReturn As Long
Dim lpPrevWndFunc As Long
On Error GoTo WindowProc_Err
    lpPrevWndFunc = GetProp(hWnd, PropertyName)
    
    Select Case uMsg
    Case WM_LBUTTONDBLCLK, WM_LBUTTONDOWN, WM_LBUTTONUP 
    Case WM_DESTROY
        SetWindowLong hWnd, GWL_WNDPROC, lpPrevWndFunc
        RemoveProp hWnd, PropertyName
        WindowProc = CallWindowProc(lpPrevWndFunc, hWnd, uMsg, wParam, lParam)
    Case Else
        WindowProc = CallWindowProc(lpPrevWndFunc, hWnd, uMsg, wParam, lParam)
    End Select
    
WindowProc_Exit:
    Exit Function
WindowProc_Err:
    MsgBox Err.Description, vbCritical
    Resume WindowProc_Exit
End Function
 
'Form1
'   * Text1: Multiline=True, ScrollBars = 3 - Both
Option Explicit
Private Sub Form_Load()
    DisableMouseSelect Text1
End Sub
Private Sub Form_Resize()
    Text1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub