Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 24 Agosto 2017, 22:06 pm



Título: Limpiar textBox en C#
Publicado por: Meta en 24 Agosto 2017, 22:06 pm
Hola:

En un textbox tengo un contenido, por ejemplo un 0, al hacer clic para escribir, quiero que se borre automáticamente. Nada de seleccoinarlo yo con el ratón y luego borrarlo con Delete. ajjaja.

Lo he intentado de dos maneras y nada.
Código
  1. private void textBox_Tamaño_EEPROM_KeyDown(object sender, KeyEventArgs e)
  2.        {
  3.            textBox_Tamaño_EEPROM.Clear(); // Limpiar.
  4.        }

Y así:
Código
  1.       private void textBox_Tamaño_EEPROM_KeyDown(object sender, KeyEventArgs e)
  2.        {
  3.            textBox_Tamaño_EEPROM.Text = ""; // Limpiar.
  4.        }

A parte de eso, solo me deja escribir hasta un carácter.


Título: Re: Limpiar textBox en C#
Publicado por: Yaldabaot en 26 Agosto 2017, 00:45 am
Revisa sobre los eventos que tiene el control textbox, además de las propiedades donde puedes observar el máximo de los caracteres.


Título: Re: Limpiar textBox en C#
Publicado por: Eleкtro en 5 Septiembre 2017, 03:52 am
Hola.

1. El evento TextBox.KeyDown, como su nombre indica por si mismo es un evento de teclado, no del ratón. Éste se dispara cuando presionas una tecla (para ser exactos: al momento de pulsarla, no al soltarla).

2. Lo que quieres hacer es una muy mala idea, aparte de ser algo intrusiva. La razón es simple: al intentar editar el texto no podrás seleccionar parte de éste, pues siempre que hagas un click, el texto / la selección se borraría.

Un ejemplo gráfico de lo que acabo de mencionar:
(https://i.imgur.com/fFu1qHx.gif)



Una vez aclarado estos inconvenientes que he explicado aquí arriba, como respuesta a tu pregunta: una solución sería controlar el evento TextBox.Click

Código
  1. private void textBox_Click(object sender, KeyEventArgs e) {
  2.    DirectCast(sender, TextBox).Clear();
  3. }

Saludos.