Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB.NET | 07.05.07 |
Alle TextBox-Controls einer Form zurücksetzen Dieser Tipp zeigt, wie man alle TextBox-Controls einer Form bzw. alle TextBox-Controls eines bestimmten Container-Objekts zurücksetzen kann. | ||
Autor: Dieter Otter | Bewertung: | Views: 27.172 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit unserem heutigen Tipp möchten wir zeigen, wie man alle TextBox-Controls einer Form zurücksetzen kann, d.h. den bisherigen Inhalt löscht.
Nachfolgender Code sieht schon ganz gut aus:
For Each oControl As Control In Me.Controls If TypeOf oControl Is TextBox Then oControl.Text = "" End IF Next
Der Code funktioniert gut, solange sich die TextBox-Control direkt auf der Form befinden. Gibt es aber weitere TextBox-Controls, die bspw. in einem Container-Control platziert sind (z.B. GroupBox), bleiben diese unberücksichtigt
In diesem Fall muss man obige For...Next Schleife zusätzlich noch für das Container-Control ausführen.
Was liegt also näher, sich eine kleine universelle Prozedur zusammenzuschreiben, die entweder alle alle TextBox-Controls der Form zurücksetzt oder aber nur die TextBox-Controls eines bestimmten Container-Controls? Und genau das machen wir jetzt.
' alle TextBox-Controls des angegebenen Container-Objekts zurücksetzen, ' wobei auch weitere Container-Controls innerhalb des Container-Objekts ' berücksichtigt werden sollen Private Sub ResetTextBox(ByVal oContainer As Object, _ Optional ByVal bSubContainerAlso As Boolean = True) If Not IsNothing(oContainer) Then ' alle Controls des Container-Objekts durchlaufen For Each oControl As Control In oContainer.Controls ' Falls es sich um ein Container-Control handelt und die ' TextBox-Controls ebenfalls zurückgesetzt werden sollen, muss ' die Funktion ResetTextBox rekursiv erneut aufgerufen werden If bSubContainerAlso AndAlso oControl.Controls.Count > 0 Then ResetTextBox(oControl) Else ' Sofern es sich um ein TextBox-Control handelt... If TypeOf oControl Is TextBox Then ' ... Inhalt löschen oControl.Text = "" End If End If Next End If End Sub
Aufrufbeispiele:
' alle TextBox-Controls der Form inkl. evtl. vorhandener ' Container-Controls berücksichtigen ResetTextBox Me
' nur TextBox-Controls berücksichtigen, die sich direkt ' auf der Form befinden ResetTextBox Me, False
' nur TextBox-Controls berücksichtigen, die sich im ' GroupBox1-Containercontrol befinden ResetTextBox GroupBox1