Eine einfache Lösung, bei einer auf Textbox.Readonly = True eingestellten Textbox, das hässliche Blinken des Carets an der Eingabestelle zu unterbinden:
Ja, stimmt schon, das Ding (die Markierung an der Eingabestelle) heisst im Microsoft-Jargon wirklich nicht CURSOR sondern CARET. Der CURSOR hingegen bezeichnet den Mauszeiger (oder auch Zeiger auf aktuellen Datenatz in Datenbank)
VB.NET-Quellcode
- Imports System.Runtime.InteropServices
- Public Class Form1
- <DllImport("user32")>
- Private Shared Function HideCaret(ByVal hWnd As IntPtr) As Integer
- End Function
- <DllImport("user32")>
- Private Shared Function ShowCaret(ByVal hWnd As IntPtr) As Integer
- End Function
- Private Sub Textbox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
- If Me.TextBox1.ReadOnly Then
- HideCaret(TextBox1.Handle)
- Else
- ShowCaret(TextBox1.Handle)
- End If
- End Sub
- End Class
Ja, stimmt schon, das Ding (die Markierung an der Eingabestelle) heisst im Microsoft-Jargon wirklich nicht CURSOR sondern CARET. Der CURSOR hingegen bezeichnet den Mauszeiger (oder auch Zeiger auf aktuellen Datenatz in Datenbank)