Truco: Vaciar Contenido de los Textbox (Windows Forms)- VB y CSharp

25 01 2008

Siguiendo con la serie de trucos… aqui les dejo la forma de limpiar los Textbox de los Windows Forms, por que en muchas ocaciones hemos cometido el groso error de decirle a cada textbox que su valor es “”… lo bueno de este truquillo es que si tiene texto o numero o lo que sea este lo deja vacio..

Espero que les guste.

En Visual Basic:

   1: 'Declaramos nuestro metodo que hara la limpieza de los textbox
   2: Private Sub LimpiarTextBox(ByVal ofrm As Form)
   3:     'hace un chequeo por todos los textbox del formulario
   4:     For Each oControl As Control In ofrm.Controls
   5:         If TypeOf oCobtrol Is TextBox Then
   6:             oControl.Text = ""
   7:         End If
   8:     Next
   9: End Sub
  10:
  11: Private Sub BtnPruebaLimpiarTextBox_Click( _
  12:     ByVal sender As System.Object, _
  13:     ByVal e As System.EventArgs) Handles BtnPruebaLimpiarTextBox.Click
  14:
  15:     Call LimpiarTextBox(Me)
  16:
  17: End Sub

En Visual C#

   1:  // Declaramos nuestro metodo que hara la limpieza de los textbox
   2: private void LimpiarTextBox(Form ofrm)
   3: {
   4:     // hace un chequeo por todos los textbox del formulario
   5:     foreach (Control oControls in ofrm.Controls)
   6:     {
   7:         if (oControls is TextBox)
   8:         {
   9:             oControls.Text = ""; // eliminar el texto
  10:         }
  11:     }
  12: }
  13:
  14: private void BtnPruebaLimpiarTextBox_Click(System.Object sender, System.EventArgs e)
  15: {
  16:     // pasar el formulario
  17:     LimpiarTextBox(this);
  18:
  19: }

Acciones

Información

19 respuestas

15 02 2008
Alfredotrooper

muchisimas gracias ;) me funciono perfecto

22 02 2008
Souammy Caballero

hola soy de Honduras, Centro America

me parece excelente el truco lo probe y me funciona perfecto … pero tengo un problema al quererlo usarlo con mis aplicaciones

yo tengo un UserControl para mis TextBox que uso en los form el user control se llama CampoUserControl.vb y el name del textbox se llama MiTextBox por lo que cuando creo un textbox en mi form le hago referencia a MiTextBox ejemplo

Me.txtCodigo.MiTextBox.Text=”hola”
usando mis controles no me funciona la rutina como tiene que ser la syntaxis para que me funcione

gracias,

22 02 2008
Alexander Jiménez

pero te has fijado si estas llamando bien al metodo… recuerda que esto no se programa en los textbox directamente… si no que el metodo es invocado para hacer una limpieza general

22 02 2008
Souammy Caballero

hice un form donde puse varios TextBox normales y varios TextBox definido en un UserControl al llamar la funcion Limpiar() …. me limpiar los textbox normales y no lo de mi controles
asi tengo mi funcion Limpiar()

Private Sub Limpiar(ByVal ofrm As Form)
”’Tu truco
For Each oControl As Control In ofrm.Controls
If TypeOf oControl Is TextBox Then
oControl.Text = “”
End If
Next

”’Solo si pongo asi me limpia
Me.txtCodigo.MiTextBox.Text = “”
Me.txtNombre.MiTextBox.Text = “”

EsNuevo = True
Me.TablaLocal.Clear()
Me.txtCodigo.MiTextBox.Enabled = True
Me.txtCodigo.MiTextBox.Focus()
Me.cmdEliminar.Enabled = False
Me.MaestroTarjetasTableAdapter.Fill(Me.DataSet.MaestroTarjetas)
End Sub

me imagino q no me funcion porq no estoy llamando la instacion de mi control … a ver si me ayudas como tengo q llamar a mi control…

gracias y mil disculpas por las preguntas pero es que soy nuevo en VB

3 05 2008
Claudio Chapa

El codigo funciona a la perfeccion, pero hay un pequeño error: si tenemos algun textbox dentro de un groupbox por ejemplo en el formulario, el mismo no es borrado.

12 05 2008
Alexander Jiménez

Hola Claudio y Souammy: Gracias por visitar mi blog… y que vean de utilidad los tips que publicado…

Para solucionar sus problemas deben cambiar el tipo de parametro (C#: Form oFor, VB: ByVal oForm as Form) por el nombre del control que esten utilizando, es decir si es un control personalizado deben recorrer los Controles que tiene su Control Personalizado… y si es un GroupBox, GridView o algun control de tipo lista deben pasar como parametro ese control…

Espero que les sea de ayuda.

Saludos,

Alexander Jimenez
Blog:
http://alexjimenez.wordpress.com
Web: http://alexjimenez.info

22 07 2008
Lenin

Hola

Perdón la molestia. como puedo implementarlo en ASP.NET?

Anticipo mi agradecimiento.

Saludos
Lenin

4 09 2008
andrea_19

Muy bueno el truco! pero no me funciono! creo q el groupbox da problemas!

9 09 2008
José Luis

Hola, gracias de antemano por la respuesta.

El caso es que, efectivamente el código no funciona en controles como Panel o GroupBox, Ojalá puedan ayudarnos….

Saludos

9 09 2008
José Luis

Probé con este código y no me sale:
Private Sub Limpiar_Cajas(ByVal f As Form, ByVal g As GroupBox)
‘recorrer todos los controles del formulario indicado
For Each c As Control In f.Controls
If TypeOf c Is TextBox Then
c.Text = “” ‘eliminar el texto
End If
Next
For Each x As Control In g.Controls
If TypeOf x Is TextBox Then
x.Text = “” ‘eliminar el texto
End If
Next
End Sub

Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
Dim x As New GroupBox
Call Limpiar_Cajas(Me, x)
Me.txtNombres.Focus()
End Sub

La pregunta es ¿Qué le falta??

9 09 2008
José Luis

Este código encontré en otro foro, pero tiene el mismo problema en los GroupBox:

dim x As Integer
for x= 0 to Frm.Controls(x).Count-1 ‘Aquí me sale error así que le borré (x)
If TypeOf Frm.Controls(x) Is TextBox then
Frm.Controls(x).Text=”"
End If
Next x

11 10 2008
Yeisson

Excelente truco me ha sido muy util, lo hice como metodo publico y me fonciona para todos los formulario…gracias

21 11 2008
Tote

¡Hola Alexander! Encantado de encontrar tu página. Tú código me ha sido de gran utilidad. Sinceramente me parece algo tan simple como eficaz. Es genial.

Repasando los comentarios anteriores sobre este post. Es cierto, cuando un TextBox esta dentro de un GroupBox no lo limpia. Pero es bastante intuitivo recorrer los controles del GroupBox también. Asi que sin problemas.

Por ayudar. Dejo el código que borra todos los TextBox, incluídos los que se encuentran dentro de un GroupBox.

Aquí está:

‘Declaramos nuestro metodo que hara la limpieza de los TextBox
Sub clearControls(ByVal pForm As Form)
‘Hacemos un chequeo por todos los controles del Form
For Each oControl As Control In pForm.Controls
‘Si un control del Form resulta ser GroupBox?????????
If TypeOf oControl Is GroupBox Then
‘Hacemos un chequeo por todos los controles del GroupBox
For Each subControl As Control In oControl.Controls
‘Si un control del GroupBox es un TextBox????
If TypeOf subControl Is TextBox Then
‘Entonces borramos su texto
subControl.Text = “”
End If
Next
End If
‘Si un control del Form resulta ser TexBox???????????
If TypeOf oControl Is TextBox Then
‘Entonces borramos su texto
oControl.Text = “”
End If
Next
End Sub

Lo dicho. Muchas gracias Alex. Saludos

28 11 2008
Felipe

Aqui esta para VB6 !!! :p

Private Sub LimpiarTextBox(ByVal ofrm As Form)

Dim oControl As Control

For Each oControl In ofrm.Controls
If TypeOf oControl Is TextBox Then
oControl.Text = “”
End If
Next

End Sub

27 12 2008
Graciela

el codigo para limpiar textbox funciona bien, pero tengo un problema cuando hago focus al primer control para volver a ingresar un texto, no me permite ingresar mas que un caracter.
Me pueden ayudar

30 03 2009
grafiky

Una pregunta interesante, ¿si queremos hacer lo contrario?
Rellenar todos los textbox de un form, pero no todos con el mismo dato. Cada textbox con un dato de una tabla por ejemplo.
Agradecería mucho la ayuda porque llevo ya dos días buscando la solución.
Salu2

11 04 2009
gabixo

la palabra nothing es mas efectiva
ya que asi “” , estas mandando un espacio en blanco al cuadro de texto en cambio con nothing asignas que el texbox no contendra absolutamente nada ni un “blank space” o “”:
ejemplo:
me.textbox1.text=nothing

21 06 2009
dago

¿Cómo sería si tuviera una Forma y dentro de esta un TabControl y dentro de este un GroupBox? Me resulta algo confuso. Gracias por la ayuda!!

grafiky aqui hay un ejemplo para llenar los TextBox con datos de una tabla:

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/0609b08d-902d-44e6-87e6-20ab8f9dd1a9

13 08 2009
Luis gabriel

Hola, esta pagina esta muy padre

este metodo esta muy bien. solo tengo una duda

yo tengo un form en el form tengo un tapcontrol y dentro del tabcontrol tengo varios grupbox con textbox.

mi pregunta com oseria para poder hacer ese metodo en c sharp

espero y me puedan ayudar
gracias

Deja un comentario