2010-09-20 5 views
8

Pas loin dans la programmation et vient de rejoindre ce forum de la puissante société donc c'est une question stupide, mais quelle est la meilleure façon d'effacer les zones de texte dans VB .Net et quelle est la différence entre les deux méthodes? J'ai aussi vu des gens critiquer les gens en utilisant des objets clairs sur leurs formes et je peux voir pourquoi mais dans ce cas, j'apprends seulement.VB.Net .Clear() ou txtbox.Text = "" textbox effacer les méthodes

txtbox1.Clear() 

ou

txtbox1.Text = "" 

Toute aide est très appréciée. Clear() définit la propriété Text sur Nothing.

Répondre

3

Les deux méthodes sont équivalentes à 100%. Je ne suis pas sûr pourquoi Microsoft a senti le besoin d'inclure cette méthode supplémentaire Clear mais depuis qu'il est là, je recommande de l'utiliser, car il exprime clairement son but.

+0

Pourquoi seulement deux? Allons-y avec un troisième [Control.ResetText] (https://msdn.microsoft.com/en-us/library/system.windows.forms.control.resettext (v = vs.110) .aspx) :-) – Steve

1

Donc txtbox1.Text = Rien ne fait la même chose que clair. Une chaîne vide (également disponible via String.Empty) n'est pas une référence null, mais n'a aucune valeur bien sûr.

+0

La documentation est pas définitive sur ce donc je ne me fierais pas sur ce comportement reste inchangé. –

17

La méthode Clear est définie comme

public void Clear() { 
     Text = null; 
    } 

Le Text setter de la propriété commence par

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

Je suppose que cela répond à votre question.

+2

On dirait que quelqu'un chez Microsoft a eu une mauvaise journée ce jour-là. Cela a l'air bizarre. +1 pour le déterrer. -1 pour Microsoft pour la documentation merdique ("Efface tout le contenu de la boîte de texte" - ** vraiment **?) Et le code bizarre. –

+0

Merci beaucoup. Très impressionné par la rapidité des réponses. Merci encore! –

+0

@Konrad: Eh bien, c'est le cas. Qu'avez-vous contre la documentation? – SLaks

2

Ajoutez ce code dans le module:

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 

Ajoutez ce code dans la fenêtre de formulaire pour appeler la routine Sub:

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 

ajouter ce code dans la forme et appeler cette fonction

EmptyTxt(Me) 
0

Utilisez juste: TextBox1.Clear() Cela fonctionnera bien.

+0

"... et quelle est la différence entre les deux méthodes?" -OP – showdev

0

Si tu veux texte sélectionné clair puis en utilisant à ce code, je vais faire par moi-même;)

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

thats it