Vale ya se a lo que te refieres, el problema es que si lo disableo no puedo cambiar el Backcolor...
![:silbar:](https://foro.elhacker.net/Smileys/navidad/silbar.gif)
Eso es muy contradictorio, en tu snippet original se queda un fondo transparente... ¿ahora para que quieres modificar el color de fondo?.
Bueno, pues si no quieres desactivarlo vas a tener que usar APIS para ocultar el cursor de texto (caret) del control:
You'll need to use Win32 APIs. Here's what you could do in VB:
'API declares
Private Declare Function HideCaret Lib "user32" _
(ByVal hwnd As IntPtr) As Integer
Private Declare Function ShowCaret Lib "user32" _
(ByVal hwnd As IntPtr) As Integer
'hide the caret in myTextBox
Call HideCaret(myTextBox.Handle)
'show the caret back..
Call ShowCaret(myTextBox.Handle)
and in C#
[DllImport("user32.dll", EntryPoint = "ShowCaret")]
public static extern long ShowCaret(IntPtr hwnd);
[DllImport("user32.dll", EntryPoint = "HideCaret")]
public static extern long HideCaret(IntPtr hwnd);
then make a call to
HideCaret(richtextbox.Handle)
when ever you want to hide it.
EDITO: Lo he probado y parece que no funciona.
EDITO 2: Funciona, para hacerlo funcionar hay que llamar a la función dentro de varios eventos del Richtextbox (por ejemplo MouseHover).
Saludos