Inicio > .net, Codigos VB y CSharp, Todas las Categorias, Visual Basic 2005, Visual C# 2005 > Truco: Vaciar Contenido de los Textbox (Windows Forms)- VB y CSharp

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

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: }
  1. 15 febrero 2008 a las 2:49 PM | #1

    muchisimas gracias ;) me funciono perfecto

  2. Souammy Caballero
    22 febrero 2008 a las 1:03 AM | #2

    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,

  3. 22 febrero 2008 a las 7:40 PM | #3

    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

  4. Souammy Caballero
    22 febrero 2008 a las 10:59 PM | #4

    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

  5. Claudio Chapa
    3 mayo 2008 a las 6:39 AM | #5

    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.

  6. 12 mayo 2008 a las 3:54 PM | #6

    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

  7. Lenin
    22 julio 2008 a las 6:54 PM | #7

    Hola

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

    Anticipo mi agradecimiento.

    Saludos
    Lenin

  8. andrea_19
    4 septiembre 2008 a las 1:47 PM | #8

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

  9. José Luis
    9 septiembre 2008 a las 6:55 PM | #9

    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

  10. José Luis
    9 septiembre 2008 a las 7:10 PM | #10

    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??

  11. José Luis
    9 septiembre 2008 a las 7:50 PM | #11

    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

  12. Yeisson
    11 octubre 2008 a las 1:59 PM | #12

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

  13. Tote
    21 noviembre 2008 a las 4:59 AM | #13

    ¡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

  14. Felipe
    28 noviembre 2008 a las 8:49 AM | #14

    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

  15. Graciela
    27 diciembre 2008 a las 1:30 PM | #15

    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

  16. grafiky
    30 marzo 2009 a las 11:46 AM | #16

    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

  17. gabixo
    11 abril 2009 a las 3:09 PM | #17

    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

  18. dago
    21 junio 2009 a las 8:10 PM | #18

    ¿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

  19. Luis gabriel
    13 agosto 2009 a las 6:18 PM | #19

    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

  20. kmuflado
    10 diciembre 2009 a las 2:59 PM | #20

    oe tote …. pucha man … xvr causa … me sirvio tu codigo …. ta q me salvaste la vida …. jaja …. sigue asi man …

  21. carlos
    11 diciembre 2009 a las 12:47 PM | #21

    Hola sbuenas, muy bueno el apoyo gracias Alex!pero qpasaria si los controles textbox stuvieran dentro de un splitcontainer dividio en 2 paneles???porfa ayudame!!!!

  22. 16 febrero 2010 a las 12:57 AM | #22

    MUY BUEN APORTE FUNCIONA PERFECTAMENTE!!!!!!!

    GRACIAS !!!!

  23. Edison
    3 junio 2010 a las 11:16 AM | #23

    Super buenos todos tus aportes mira tengo un problem necesito realizar una aplicacion q tenga herencia, polimorfismo y encapsulamiento me podrias ayudar con algun ejemplo basico para realizar el programa

  24. Genesis2127
    5 junio 2010 a las 7:03 PM | #24

    Gracias me funcion muy bien sabes tengo un formmulario con 136 texboxt y me funciono muy muy bien =D Enserio

  25. Tatiana
    10 junio 2010 a las 6:22 PM | #25

    Como puedo programar en ado.net ?????

  26. santyl65@hotmail.com
    14 junio 2010 a las 5:37 PM | #26

    BUENAZO TUS TRUCOS ME FUNCIONO A LA PERFECCION
    ATT SANTYL65
    ECUADOR

  27. angelll
    21 octubre 2010 a las 6:42 PM | #27

    Como funcionaria en un formulario utilizando TabPages

  28. Danito
    21 febrero 2011 a las 7:07 PM | #28

    Con algunos retoques logré cambiar las propiedades text y backcolor, pero no puedo hacerlo con ReadOnly.
    Obviamente la pregunta es ¿cómo puedo modificar también ReadOnly?
    Este es el código que escribí.
    For Each oControl As Control In Me.Controls
    If TypeOf oControl Is TextBox Then
    oControl.Text = “”
    oControl.BackColor = Color.Yellow
    ‘oControl.ReadOnly = False – No se puede hacer
    End If
    Next

  29. Agusto
    9 mayo 2011 a las 11:54 AM | #29

    Bueno lo veo muy practico… pero funcional

    yo acostumbro a poner los metodos… y los llamo donde se necesite…

  30. oscar
    14 marzo 2012 a las 11:55 AM | #30

    Muchas graciass por el truco!!

    Saludos

  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 27 seguidores