Textbox in Form einfügen währen der Laufzeit?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von haufe.

    Textbox in Form einfügen währen der Laufzeit?

    Hallo

    wie kann ich in meine Form eine Textbox währen der Laufzeit einfügen?

    Sollte der Button x gedrückt werden, wir eine neue Textbox in die Form angelegt und bei Button Y der enthaltene Text in eine Variable oder TxT gespeichert.


    Danke Haufe
    ähh? wasn das :)
    - Außerhalb einer Funktion/Methode:
    Dim WithEvents txtNeu As System.Windows.Forms.TextBox

    - Dann im Click-Ereignis:

    VB.NET-Quellcode

    1. Private Sub Button1_click(.....) Handles Button1.Click
    2. txtNeu = New System.windows.Forms.TextBox
    3. With txtNeu
    4. .Location = New System.Drawing.Point(62, 121)
    5. .Name = "txtNeu"
    6. .Size = New System.Drawing.Size(100, 20)
    7. .TabIndex = 0
    8. .visible = true
    9. End With
    10. End Sub



    so ähnlich müssts gehn.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    das funktioniert ja , aber wie bekomme ich mehrere textboxen mit einem butten rein? so das ich den inhalt immer noch speichern kann?!?!?


    VB.NET-Quellcode

    1. Dim y As Integer = 20
    2. Dim WithEvents txtNeu As System.Windows.Forms.TextBox
    3. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    4. txtNeu = New System.Windows.Forms.TextBox
    5. Me.Controls.Add(txtNeu)
    6. With txtNeu
    7. .Location = New System.Drawing.Point(360, y)
    8. .Name = "txtNeu"
    9. .Size = New System.Drawing.Size(100, 20)
    10. .TabIndex = 0
    11. .Visible = True
    12. End With
    13. y += 25
    14. End Sub


    mit y setzte ich die neue box um 25 tiefer.

    aber wie mache ich das jetzt mit dem zugriff auf die boxen??

    danke
    haufe
    ähh? wasn das :)
    Vorschlag:

    Dim txts(5) As System.Windows.Forms.Textbox

    Damit erstellst du ein textboxarray.. mit der for-Schleife im button-Click kannst du die dann mit txts(i) = new textbox initialisieren und die dann auch über ein Index ansprechen.. z.b. txts(0).Text = "Hallo" (erste Textbox bekommt den Inhalt hallo.)
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Wenn du zb auf den Click-Event reagieren willst musst du eine Sub für das Click-Event der neuen Textbox erstellen. So etwa:

    VB.NET-Quellcode

    1. Private Sub txtNeu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNeu.Click
    2. MsgBox(sender.Name)
    3. End Sub

    So wird z.B der Name der erstellen Textbox zurückgegeben.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Danke hab es jetzt so

    VB.NET-Quellcode

    1. Dim y As Integer = 20
    2. Dim i As Integer = 0
    3. Dim txts(10) As System.Windows.Forms.TextBox
    4. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    5. txts(i) = New System.Windows.Forms.TextBox
    6. Me.Controls.Add(txts(i))
    7. With txts(i)
    8. .Location = New System.Drawing.Point(360, y)
    9. .Name = "txtNeu"
    10. .Size = New System.Drawing.Size(100, 20)
    11. .Visible = True
    12. End With
    13. i += 1
    14. y += 25
    15. End Sub
    ähh? wasn das :)