¿Hay alguna manera de deshabilitar el cursor en el cuadro de texto sin establecer la propiedad Enable en false? Estaba intentando utilizar la propiedad ReadOnly, pero a pesar de que no puedo escribir en el cuadro de texto, el cursor aparece si hago clic en el cuadro de texto. Entonces, ¿hay alguna manera de deshacerse de este cursor permanentemente?Cómo deshabilitar el cursor en el cuadro de texto?
Respuesta
En su lugar, podría usar un Label
. Cuando está en el diseñador, establece BorderStyle = Fixed3D
, BackColor = Window
y AutoSize = False
, se parece mucho a un TextBox.
Sin embargo, el cursor en un cuadro de texto se proporciona para que el usuario pueda desplazarse por el texto cuando es más largo que el cuadro. Perderá esa funcionalidad con una etiqueta, a menos que esté seguro de que siempre le quedará. Aparte de eso, no es posible eliminar el cursor de un TextBox.
En C#, se puede usar la siguiente sólo lectura de texto:
public class ReadOnlyTextBox : TextBox
{
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
public ReadOnlyTextBox()
{
this.ReadOnly = true;
this.BackColor = Color.White;
this.GotFocus += TextBoxGotFocus;
this.Cursor = Cursors.Arrow; // mouse cursor like in other controls
}
private void TextBoxGotFocus(object sender, EventArgs args)
{
HideCaret(this.Handle);
}
}
¿Por qué configurar el 'BackColor'? Windows ya se ocupa de esto para que coincida con el tema del sistema del usuario. –
@Mikhail Semenov Soy nuevo en C#, cómo invocar este evento 'TextBoxGotFocus', no está presente también en eventos. pls help .. –
Esto funcionó perfectamente para un RichTextBox donde estaba teniendo un problema similar. El código en ReadOnlyTextBox() es superfluo. – OfficeAddinDev
puede utilizar RightToLeft Propiedad de Cuadro de texto, ponerlo en verdad, no se librará del cursor, pero se arreglará en la esquina derecha y no aparecerá automáticamente después de cada texto que escriba en su cuadro de texto. Lo he usado para desarrollar una aplicación como Windows Calculator.
Solo empeora las cosas. También cambia la alineación, el cursor aún aparece donde haces clic y seleccionar texto es ... extraño. –
En C#, puede deshabilitar el cursor en un cuadro de texto desactivando temporalmente y luego volviendo a habilitar el cuadro de texto siempre que reciba el foco. Tenga en cuenta que no es necesario hacer que el cuadro de texto solo sea leído si usa este método. Por ejemplo:
private void TextBox_Enter(object sender, EventArgs e)
{
TextBox.Enabled = false;
TextBox.Enabled = true;
}
si coloca la función hideCaret dentro del evento Textchange, esto solucionará el problema.
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
private void textBox1_TextChanged(object sender, EventArgs e)
{
HideCaret(textBox1.Handle);
}
Puede establecerlo programáticamente.
textBox1.Cursor = Cursors.Arrow;
La solución más sencilla para mí fue simplemente anular el evento de enfoque y enfocar de nuevo al elemento principal. Esto evita el cursor y cualquier edición del cuadro de texto por parte del usuario y, básicamente, deshabilita el cuadro de texto sin tener que establecer la propiedad Enabled = false.
private void Form1_load(object sender, EventArgs e) {
textBox1.ReadOnly = true;
textBox1.Cursor = Cursors.Arrow;
textBox1.GotFocus += textBox1_GotFocus;
}
private void textBox1_GotFocus(object sender, EventArgs e) {
((TextBox)sender).Parent.Focus();
}
- 1. Prevenir el parpadeo del cursor en el cuadro de texto
- 2. ¿Cómo colocar el cursor en cierto cuadro Editar texto?
- 3. ¿Cómo ocultar el cursor parpadeante del cuadro de texto?
- 4. Cómo deshabilitar el cuadro de texto según la casilla marcada
- 5. Cómo deshabilitar el ajuste de texto en el control de cuadro de texto?
- 6. cuadro de texto "Buscar y reemplazar" mantiene el cursor
- 7. Cursor giratorio de acuerdo con el cuadro de texto girado
- 8. Cómo deshabilitar la selección en un cuadro de texto
- 9. Cambie el cursor de texto/cursor en Visual Studio 2010
- 10. ¿Cómo pegar texto en el cursor actual del cuadro de texto?
- 11. foco en el cuadro de texto
- 12. Deshabilitar el cursor parpadeante de EditText
- 13. Deshabilitar un cuadro de texto con CSS
- 14. cómo ocultar el cursor parpadeante en el texto de entrada?
- 15. Establecer el cursor en una longitud de 14 en el foco de un cuadro de texto
- 16. ¿Cómo puedo obtener el número de columna del cursor en un cuadro de texto en C#?
- 17. quiero poner el cursor en el inicio del cuadro de texto onfocus
- 18. ¿Cómo deshabilitar el posicionamiento del cursor y la selección de texto en EditText? (Android)
- 19. Cursor Enfocar en cuadro de texto en WPF/C#
- 20. Encontrar la posición del cursor en un cuadro de texto
- 21. Deshabilitar el retroceso en el cuadro de texto a través de javascript
- 22. Deshabilitar el ajuste de texto
- 23. Cómo deshabilitar el cuadro de texto de entrada de archivo en IE?
- 24. cómo establecer el cursor en el cuadro de entrada en javascript?
- 25. Cómo configurar el cursor dentro del cuadro de texto después de cargar la página con jquery
- 26. C#: cómo configurar el texto en el cuadro de texto para mostrar una pista cuando el cuadro de texto está vacío?
- 27. Cómo mover el cuadro de texto a la derecha
- 28. Texto de límite de Jquery en el cuadro de entrada
- 29. ¿Cursor en el medio de una caja de texto?
- 30. Deshabilitar el cuadro de confirmación de delGridRow en jqGrid
Un cuadro de texto ReadOnly también es útil para mostrar información que el usuario puede querer copiar y pegar en otro lugar. Al usar una Etiqueta (o deshabilitar el cursor) esa habilidad se pierde o se reduce. Pero si realmente desea mostrar información sin la posibilidad de seleccionarla, entonces una etiqueta es la herramienta adecuada para el trabajo. –
@JeffreyLWhitledge Sé que esta es una vieja pregunta, pero para aumentar el peso, ¿qué sucede si el usuario requiere barras de desplazamiento en una etiqueta? –
@KyleT: si tiene una cantidad de texto suficiente como para requerir barras de desplazamiento, le sugiero que siga utilizando un 'TextBox' en su lugar, y establezca su propiedad' ReadOnly' en 'true'. El cursor es realmente agradable de tener, ya que permite al usuario seleccionar partes del texto sin editarlo. – Virtlink