Foros del Web » Programación para mayores de 30 ;) » .NET »

Limpiar TextBox

Estas en el tema de Limpiar TextBox en el foro de .NET en Foros del Web. Hola a Todos, Estoy usando VB.NET 2003, y deseo borrar el contenido de todos los TextBox de una ventana por medio de código sin necesidad ...
  #1 (permalink)  
Antiguo 17/12/2006, 09:28
 
Fecha de Ingreso: septiembre-2003
Ubicación: Argentina
Mensajes: 145
Antigüedad: 21 años, 2 meses
Puntos: 0
Limpiar TextBox

Hola a Todos,
Estoy usando VB.NET 2003, y deseo borrar el contenido de todos los TextBox de una ventana por medio de código sin necesidad de colocar una línea de código para cada uno. ¿Cómo puedo hacer? Gracias.

Saludos

Diego
  #2 (permalink)  
Antiguo 17/12/2006, 19:30
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Re: Limpiar TextBox

Puedes hacerlo con un ForEach, no tengo las lineas en este momento pero recores los controles del formulario y si este control es un textbox, lo limpias


Acabo de hacer esto y aparentemente funciona:

Código:
foreach (Control c in this.Controls)
            {
                if (c.GetType().ToString() == "System.Windows.Forms.TextBox")
                {
                    c.Text = "";
                }
            }
Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)

Última edición por jhonwilliams; 17/12/2006 a las 19:39
  #3 (permalink)  
Antiguo 18/12/2006, 09:44
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Limpiar TextBox

Cita:
Iniciado por jhonwilliams Ver Mensaje

Acabo de hacer esto y aparentemente funciona:

Código:
foreach (Control c in this.Controls)
            {
                if (c.GetType().ToString() == "System.Windows.Forms.TextBox")
                {
                    c.Text = "";
                }
            }
tambien el lugar de usar el .Text y asignar una cadena vacia, puedes dar el metodo .Clear() del textbox para vaciar el texto del control y asi dejarla limpiecita, pero lo que dijo jhon funciona perfecto, ya hasta me lo fusile para mis APP, ya que yo lo hacia con un Try...Catch pero no era muy funcional
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #4 (permalink)  
Antiguo 18/12/2006, 10:32
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Re: Limpiar TextBox

Les juro que busque el .Clear() pero en VS2005 no lo encontre dentro del ciclo, trata de hacerlo y me muestras que modificaciones le hiciste.

Si digo TextBox1.Clear() funciona, pero no para la instancia llamada c dentro del foreach

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #5 (permalink)  
Antiguo 18/12/2006, 10:54
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Limpiar TextBox

Pruebale con esto y me cuentas...

((TextBox)c).Clear();
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #6 (permalink)  
Antiguo 18/12/2006, 11:22
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Re: Limpiar TextBox

Excelente, sin problemas , no se me habia ocurrido hacerle el cast

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #7 (permalink)  
Antiguo 18/12/2006, 11:28
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Limpiar TextBox

El problema que teníamos era que solo heredabamos de control mas nunca heredabamos de TextBox es por eso que haciendo el casting ya queda y hasta la linea se ve con mas calidad , ahora tambien podia haberse realizado con un c.Text = null y tambien quedaba, bueno ya son 3 formas hay para el que guste:

c.Text = "";
c.Text= null;
((TextBox)c).Clear();

y creo que ya nos apoderamos de este post jajaja
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #8 (permalink)  
Antiguo 12/02/2007, 10:11
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Re: Limpiar TextBox

Notaron que solo funciona para los controles del formulario? y que si tenemos en el form un contenedor (groupbox) tambien debemos recorrerlo y limpiar los que estan dentro de el, si solo recorremos los del formulario los del groupbox no se limpian

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #9 (permalink)  
Antiguo 12/02/2007, 10:28
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Limpiar TextBox

sip, ya que todo va funcionando dentro de lo del foreach, tendriamos que hacer una deteccion de contenedores para poder hacer tambien la evaluacion dentro de ellos, ya que podriamos decir que un contenedor es como un "this" secundario.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #10 (permalink)  
Antiguo 12/02/2007, 16:20
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Re: Limpiar TextBox

Cita:
Iniciado por jhonwilliams
Notaron que solo funciona para los controles del formulario? y que si tenemos en el form un contenedor (groupbox)
para esos casos podemos usar la recursividad, quedaría de la siguiente forma

Código:
 
 private void ClearTextBox(Control c) {
            if (c.GetType().Name == "TextBox") {
                c.Text = string.Empty;
            }
            else {
                foreach (Control child in c.Controls)
                    ClearTextBox(child);
            }
        }

 private void Form1_Load(object sender, EventArgs e)
        {
            foreach (Control c in this.Controls) {
                ClearTextBox(c);
            }
        }
y listo, podemos tener un contenedor dentro de otro contenedor..etc.. y si hay un textbox lo podemos detectar

espero les sirva.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #11 (permalink)  
Antiguo 12/02/2007, 16:37
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Limpiar TextBox

Cita:
Iniciado por RootK Ver Mensaje
para esos casos podemos usar la recursividad...
Pero el proceso seria un poco lento por la acumulacion en la pila de la funcion de la recursividad no?, de todas formas es una buena solucion , por eso eres mi idolo... ...creo que me oi un poco marica ¬¬

saludos.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #12 (permalink)  
Antiguo 13/02/2007, 02:21
 
Fecha de Ingreso: febrero-2007
Mensajes: 12
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Limpiar TextBox

hola
puedes usar una colecion
Cita:
Controls:obtine una colecion de controles
aca te pongo un ejemplo en c# pero para vb es muy similar
Código:
try
            {
                foreach (TextBox txt in this.Controls)
                {
                    txt.Clear();
                }
            }
            catch { }
saludos y si tienes alguna consulta y esta en mis manos ayudarte no dudes en hacerla [email protected]
  #13 (permalink)  
Antiguo 13/02/2007, 10:52
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Re: Limpiar TextBox

Cita:
Iniciado por willy6666
hola
puedes usar una colecion
Controls:obtine una colecion de controles
y que es lo que acabamos de poner ???

por eso explicamos que con this.Controls obtenemos todos los controles actuales pero si tenemos un contenedor la funcion que estas colocando no va a funcionar por eso puse el ejemplo de la recursividad.
  #14 (permalink)  
Antiguo 13/02/2007, 11:45
 
Fecha de Ingreso: febrero-2007
Mensajes: 12
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Limpiar TextBox

Cita:
originalmente publicado por ROOTK
por eso explicamos que con this.Controls obtenemos todos los controles actuales pero si tenemos un contenedor la funcion que estas colocando no va a funcionar
es muy cierto no funciona si tienes contenedores. pero creo que es muy obio
Controls: solo tendria a lo contenedores
Código:
foreach (textBox1 txt in this.groupBox1.Controls) ;//sola cambia el foreach 
obio que tienes que hacelo para todos lo contenedores.
pero bueno solo era una idea
saludos
  #15 (permalink)  
Antiguo 13/02/2007, 13:07
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Limpiar TextBox

Cita:
Iniciado por willy6666 Ver Mensaje
es muy cierto no funciona si tienes contenedores. pero creo que es muy obio
Controls: solo tendria a lo contenedores
Código:
foreach (textBox1 txt in this.groupBox1.Controls) ;//sola cambia el foreach 
obio que tienes que hacelo para todos lo contenedores.
pero bueno solo era una idea
saludos
y es por eso que rootk dijo que se usara una funcion recursiva
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #16 (permalink)  
Antiguo 26/03/2010, 14:07
Avatar de Favvro  
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Limpiar TextBox

Muy buena la idea y la aplicación de la función recursiva, Haciendo un case, o distintas funciones se puede personalizar para resetaer todo tipo de controles, como ComoBox.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:13.