simplemente para la corrección, que necesitaba dicha funcionalidad para el uso con un DevExpress WinForms TextEdit
control.
que ya hacen provid e a ShowCaret
y un método HideCaret
, lamentablemente están protegidos. Por lo tanto, creé una clase derivada que proporciona la funcionalidad. Aquí está el código completo:
public class MyTextEdit : TextEdit
{
private bool _wantHideCaret;
public void DoHideCaret()
{
HideCaret();
_wantHideCaret = true;
}
public void DoShowCaret()
{
ShowCaret();
_wantHideCaret = false;
}
protected override void OnGotFocus(EventArgs e)
{
base.OnGotFocus(e);
if (_wantHideCaret)
{
HideCaret();
}
}
}
para usar el código, basta con utilizar la clase derivada en lugar de la clase original TextEdit
en el código y lo llaman DoHideCaret()
en cualquier lugar, por ejemplo, en el constructor de su formulario que contiene el control de edición de texto.
Quizás esto sea útil para alguien en el futuro.
No se olvide 'using System.Runtime.InteropServices;' y 'ShowCaret (IntPtr hWnd);' – Sam