2010-09-20 31 views
8

No muy lejos en la programación y acaba de unirse a este foro de poderosa compañía, así que esta es una pregunta tonta, pero ¿cuál es la mejor manera de borrar cuadros de texto en VB .Net y ¿cuál es la diferencia entre los dos métodos? También he visto a personas criticar a la gente que usa objetos claros en sus formularios y puedo ver por qué, pero en este caso, solo estoy aprendiendo.VB.Net .Clear() o txtbox.Text = "" textbox clear methods

txtbox1.Clear() 

o

txtbox1.Text = "" 

Cualquier ayuda es muy apreciada.

Respuesta

3

Los dos métodos son 100% equivalentes.

No estoy seguro de por qué Microsoft sintió la necesidad de incluir este método adicional Clear pero como está allí, recomiendo usarlo, ya que expresa claramente su propósito.

+0

¿Por qué solo dos? Vamos con un tercero [Control.ResetText] (https://msdn.microsoft.com/en-us/library/system.windows.forms.control.resettext (v = vs.110) .aspx) :-) – Steve

1

Borrar() establece la propiedad Texto en nada. Entonces txtbox1.Text = Nada hace lo mismo que borrar. Una cadena vacía (también disponible a través de String.Empty) no es una referencia nula, pero no tiene ningún valor, por supuesto.

+0

La documentación no es definitiva sobre este para que no me baso en este comportamiento permaneciendo sin cambios. –

17

El método Clear se define como

public void Clear() { 
     Text = null; 
    } 

colocador El Text de propiedad comienza con

 set { 
      if (value == null) { 
       value = ""; 
      } 

Asumo que esto responda a su pregunta.

+2

Parece que alguien en Microsoft tuvo un mal día ese día. Esto se ve raro. +1 para desenterrarlo. -1 para Microsoft por documentación cutre ("Borra todo el contenido del cuadro de texto" - ** ¿realmente **?) Y código extraño. –

+0

Muchas gracias. Muy impresionado con la velocidad de las respuestas. ¡Gracias de nuevo! –

+0

@Konrad: Bueno, lo hace. ¿Qué tienes en contra de la documentación? – SLaks

2

Añadir este código en el módulo:

Public Sub ClearTextBoxes(frm As Form) 

    For Each Control In frm.Controls 
     If TypeOf Control Is TextBox Then 
      Control.Text = ""  'Clear all text 
     End If  
    Next Control 

End Sub 

añadir este código en la ventana Formulario llamar al subrutin:

Private Sub Command1_Click() 
    Call ClearTextBoxes(Me) 
End Sub 
1
Public Sub EmptyTxt(ByVal Frm As Form) 
    Dim Ctl As Control 
    For Each Ctl In Frm.Controls 
     If TypeOf Ctl Is TextBox Then Ctl.Text = "" 
     If TypeOf Ctl Is GroupBox Then 
      Dim Ctl1 As Control 
      For Each Ctl1 In Ctl.Controls 
       If TypeOf Ctl1 Is TextBox Then 
        Ctl1.Text = "" 
       End If 
      Next 
     End If 
    Next 
End Sub 

añadir este código en la forma y llamar a esta función

EmptyTxt(Me) 
0

Uso: TextBox1.Clear() Funcionará bien.

+0

"... ¿y cuál es la diferencia entre los dos métodos?" -OP – showdev

0

Si quieres a un texto seleccionado claro, entonces, que utilizan a este código voy a hacer por mí mismo;)

If e.KeyCode = Keys.Delete Then 
    TextBox1.SelectedText = "" 
End If 

eso es todo