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: }
















muchisimas gracias
me funciono perfecto
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,
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
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
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.
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
Hola
Perdón la molestia. como puedo implementarlo en ASP.NET?
Anticipo mi agradecimiento.
Saludos
Lenin
Muy bueno el truco! pero no me funciono! creo q el groupbox da problemas!
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
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??
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
Excelente truco me ha sido muy util, lo hice como metodo publico y me fonciona para todos los formulario…gracias
¡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
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
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
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
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
¿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
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