2010-09-20 9 views
8

Nie jesteś zbyt zajęty programowaniem i właśnie dołączyłeś do tego forum potężnej firmy, więc jest to głupie pytanie, ale jaki jest najlepszy sposób na wyczyszczenie pól tekstowych w VB .Net i jaka jest różnica między tymi dwoma metodami? Widziałem też, jak ludzie krytykują ludzi posługujących się jasnymi przedmiotami w ich formach i widzę, dlaczego, ale w tym przypadku uczę się tylko.VB.Net .Clear() lub txtbox.Text = "" textbox wyczyść metody

txtbox1.Clear() 

lub

txtbox1.Text = "" 

Każda pomoc jest mile widziane.

Odpowiedz

3

Te dwie metody są w 100% równoważne.

Nie jestem pewien, dlaczego Microsoft odczuwał potrzebę uwzględnienia tej dodatkowej metody Clear, ale ponieważ jest tam, polecam jej używanie, ponieważ wyraźnie wyraża ona cel.

+0

Dlaczego tylko dwa? Przejdźmy do trzeciego [Control.ResetText] (https://msdn.microsoft.com/en-us/library/system.windows.forms.control.resettext (v = vs.110) .aspx) :-) – Steve

1

Wyczyść() Ustaw właściwość Tekst na zero. Tak więc txtbox1.Text = Nic nie robi tego samego, co jasne. Pusty ciąg (dostępny również za pośrednictwem String.Empty) nie jest odwołaniem zerowym, ale nie ma wartości oczywiście.

+0

Dokumentacja nie jest zdecydowany na to, żeby nie polegać na zachowanie to pozostaje bez zmian. –

17

Clear Metoda jest zdefiniowana jako

public void Clear() { 
     Text = null; 
    } 

seter na Text m.in. zaczynającej się

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

zakładam to odpowiedzi na swoje pytanie.

+2

Wygląda na to, że ktoś w firmie Microsoft miał zły dzień w tym dniu. To wygląda dziwnie. +1 za wykopanie go. -1 dla Microsoftu za brzydką dokumentację ("Czyści całą zawartość z pola tekstowego" - ** naprawdę **?) I dziwny kod. –

+0

Dziękuję bardzo. Bardzo pod wrażeniem szybkości reakcji. Dzięki jeszcze raz! –

+0

@Konrad: Cóż, to prawda. Co masz przeciwko dokumentacji? – SLaks

2

Dodaj ten kod w 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 

Dodaj ten kod w oknie Form Aby wywołać podprogram:

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 

dodać ten kod w formularzu i wywołać tę funkcję

EmptyTxt(Me) 
0

Po prostu użyj: TextBox1.Clear() Będzie działać dobrze.

+0

"... i jaka jest różnica między tymi dwoma metodami?" -OP – showdev

0

Jesli chcesz zaznaczonego tekstu jasno następnie używając do tego kodu i uczyni moją siebie;)

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

to wszystko