2010-09-20 10 views
8

Nicht weit in die Programmierung und trat nur dieses Forum der mächtigen Firma, so ist dies eine dumme Frage, aber was ist der beste Weg, um Textfelder in VB zu löschen .Net und was ist der Unterschied zwischen den beiden Methoden? Ich habe auch gesehen, dass Leute kritisch gegenüber Leuten sind, die klare Objekte auf ihren Formen benutzen, und ich kann sehen, warum, aber in diesem Fall lerne ich nur.VB.Net .Clear() oder txtbox.Text = "" Textbox löschen Methoden

txtbox1.Clear() 

oder

txtbox1.Text = "" 

Jede Hilfe ist sehr geschätzt.

Antwort

3

Die beiden Methoden sind 100% äquivalent.

Ich bin mir nicht sicher, warum Microsoft das Bedürfnis fühlte, diese zusätzliche Clear Methode einzubeziehen, aber da es da ist, empfehle ich es zu verwenden, da es seinen Zweck klar ausdrückt.

+0

Warum nur zwei? Lassen Sie uns mit einem dritten gehen [Control.ResetText] (https://msdn.microsoft.com/en-us/library/system.windows.forms.control.resettext (v = vs.110) .aspx) :-) – Steve

1

Clear() setzen Sie die Eigenschaft Text auf nichts. Also txtbox1.Text = Nichts macht das Gleiche wie klar. Eine leere Zeichenfolge (auch über String.Empty verfügbar) ist keine Nullreferenz, hat aber natürlich keinen Wert.

+0

Die Dokumentation ist nicht eindeutig auf dem so würde ich nicht vertrauen auf dieses Verhalten bleibt unverändert. –

17

Die Clear Methode ist definiert als

public void Clear() { 
     Text = null; 
    } 

Die Setter der Text Eigenschaft beginnt mit

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

Ich nehme an, dies Ihre Frage beantwortet.

+2

Es sieht so aus, als hätte jemand bei Microsoft einen schlechten Tag an diesem Tag. Das sieht komisch aus. +1 für das Ausgraben. -1 für Microsoft für schlechte Dokumentation ("Löscht den gesamten Inhalt aus dem Textfeld" - ** wirklich **?) Und seltsamen Code. –

+0

Vielen Dank. Sehr beeindruckt von der Geschwindigkeit der Antworten. Danke noch einmal! –

+0

@Konrad: Nun, tut es. Was hast du gegen die Dokumentation? – SLaks

2

Fügen Sie diesen Code in das Modul:

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 

diesen Code hinzufügen in dem Formularfenster, um die Sub-Routine aufzurufen:

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 

diesen Code in Form hinzufügen und diese Funktion aufrufen

EmptyTxt(Me) 
0

Verwenden Sie einfach: TextBox1.Clear() Es wird gut funktionieren.

+0

"... und was ist der Unterschied zwischen den beiden Methoden?" -OP – showdev

0

Wenn u zu ausgewähltem Text soll dann klar auf diesen Code mit i von mir selbst machen;)

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

das ist es