Alle Textboxen auf der Form löschen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von kwon.

    Alle Textboxen auf der Form löschen

    Hallo,

    auf meiner Form habe ich verschiedene Elemente (1 Label, 81 Textboxen und 2 Buttons) - siehe Bild im Anhang.

    Ich würde gerne alle Textboxen löschen und habe folgendes probiert:


    VB.NET-Quellcode

    1. ​Dim ctrl As Control
    2. For Each ctrl In Me.Controls
    3. If TypeOf ctrl Is TextBox Then
    4. ctrl.Text = ""
    5. End If
    6. Next


    oder

    VB.NET-Quellcode

    1. ​For n = 1 To 81
    2. Me.Controls("TextBox" & CStr(n)).Text = ""
    3. Next


    leider klappt das nicht - was mache ich falsch?

    Vielen Dank für die Hilfe!!

    Grüße,

    kwon
    Bilder
    • bildgrid.jpg

      31,28 kB, 313×425, 39 mal angesehen
    Form.Controls ist eine Baumstruktur.
    Also auf einem Form gibts Controls, und auf jedem Control in diesen Controls kanns wieder Controls geben.
    Vermutlich liegen deine Textboxen auf einem Control der Controls deines Forms.
    Dann musst du natürlich die Controls desjenigen Controls durchsuchen, wo deine Textboxen drauf sind.
    Prinzipiell ist dein erstes Snippet besser geeignet - du musst nur herausfinden, auf welchem Control deine Textboxen wirklich liegen.
    Also sowas muss bei rauskommen:

    VB.NET-Quellcode

    1. For Each ctrl As Control In Me.TableLayoutPanel1.Controls
    2. If TypeOf ctrl Is TextBox Then
    3. ctrl.Text = ""
    4. End If
    5. Next
    oder so ähnlich

    ErfinderDesRades schrieb:

    oder so ähnlich
    @kwon So was:

    VB.NET-Quellcode

    1. For Each tb In Me.Controls.OfType(Of TextBox)()
    2. tb.Clear()
    3. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!