Inhalt Textboxen speichern die inerhalb eine TableLayoutPanel liegen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Inhalt Textboxen speichern die inerhalb eine TableLayoutPanel liegen

    Hallo habe noch einmal eine Frage zum TableLayoutPanel.
    wenn ich normale TextBoxen mit den unteren Code in eine Textdatei schreibe, klappt es.
    versuche ich jetzt aber mit TextBoxen innerhalb eines TableLayouPanel wird der Inhalt der TextBoxen nicht gespeichert!
    Woran kann es liegen???

    VB.NET-Quellcode

    1. Dim tlist As New List(Of String)
    2. For i As Int32 = Me.Controls.Count - 1 To 0 Step -1
    3. If TypeOf Me.Controls(i) Is TextBox Then
    4. tlist.Add(Me.Controls(i).Text)
    5. End If
    6. Next
    7. IO.File.WriteAllLines("C:\DatenWS\Neu.txt", tlist.ToArray)



    Matthias

    carwashbuxtehude schrieb:

    innerhalb eines TableLayouPanel
    gehören die Controls nicht in die Form-Collection, sondern in die TableLayouPanel-Collection.
    Nimm die oder sprich die TextBox mit ihrem Namen an.
    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!
    Ok!
    wenn ich sie alleine anspreche geht es.

    VB.NET-Quellcode

    1. Dim tlist As New List(Of String)
    2. tlist.Add(MaskedTextBox1.Text)
    3. IO.File.WriteAllLines("C:\DatenWS\Neu1.txt", tlist.ToArray)


    Wie bekomme ich es jetzt hin, das ich nicht jede MaskedtextBox angeben muss, sondern wie vorher das alle durchlaufen werden?

    Matthias

    carwashbuxtehude schrieb:

    Wie bekomme ich es jetzt hin
    Das haste nich verstanden:

    RodFromGermany schrieb:

    gehören die Controls nicht in die Form-Collection, sondern in die TableLayouPanel-Collection.
    So:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim tlist As New List(Of String)
    3. For i = Me.TableLayoutPanel1.Controls.Count - 1 To 0 Step -1
    4. If TypeOf Me.TableLayoutPanel1.Controls(i) Is TextBox Then
    5. tlist.Add(Me.TableLayoutPanel1.Controls(i).Text)
    6. End If
    7. Next
    8. IO.File.WriteAllLines("C:\Temp\Neu.txt", tlist.ToArray)
    9. End Sub
    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!
    OK!

    Die Controls sind als in der TableLayouPanel-Collection und in meinem Ursprungscode wurde Form-Collection angesprochen!

    Gespeichert!

    Danke für die Hilfe.

    jetzt wird alles was in einer TextBox steht und im TableLayoutPanel1 steht gespeichert.
    Kann man es auch so hinbekommen, das Inhalte aus einer Combobox und TextBox in einer Datei gespeichert wird?
    Habe es jetzt so versucht zu lösen.
    Klappt soweit auch.

    VB.NET-Quellcode

    1. Dim inhalt As New System.Text.StringBuilder
    2. For i = Me.TableLayoutPanel1.Controls.Count - 1 To 0 Step -1
    3. If TypeOf Me.TableLayoutPanel1.Controls(i) Is MaskedTextBox Or TypeOf Me.TableLayoutPanel1.Controls(i) Is MaskedTextBox Then
    4. inhalt.AppendLine(Me.TableLayoutPanel1.Controls(i).Text)
    5. ElseIf TypeOf Me.TableLayoutPanel1.Controls(i) Is ComboBox Then
    6. inhalt.AppendLine(Me.TableLayoutPanel1.Controls(i).Text)
    7. End If
    8. Next
    9. IO.File.WriteAllText("C:\DatenWS\Neu.txt", inhalt.ToString)


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „carwashbuxtehude“ ()

    carwashbuxtehude schrieb:

    VB.NET-Quellcode

    1. If TypeOf Me.TableLayoutPanel1.Controls(i) Is MaskedTextBox Or TypeOf Me.TableLayoutPanel1.Controls(i) Is MaskedTextBox Then

    VB.NET-Quellcode

    1. If xxx Or xxx Then
    :?: :?: :?: Ja was den nun?
    -----

    carwashbuxtehude schrieb:

    16 mal den gleichen Eintrag
    Genau das steht in Deinem Code, bis auf den Wert 16:

    carwashbuxtehude schrieb:

    VB.NET-Quellcode

    1. inhalt.AppendLine(Me.TableLayoutPanel1.Controls(i).Text)



    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!
    Ich hatte es schon verbessert.

    VB.NET-Quellcode

    1. Dim inhalt As New System.Text.StringBuilder
    2. For i = Me.TableLayoutPanel1.Controls.Count - 1 To 0 Step -1
    3. If TypeOf Me.TableLayoutPanel1.Controls(i) Is MaskedTextBox Or TypeOf Me.TableLayoutPanel1.Controls(i) Is ComboBox Then
    4. inhalt.AppendLine(Me.TableLayoutPanel1.Controls(i).Text)
    5. End If
    6. Next
    7. IO.File.WriteAllText("C:\DatenWS\Neu.txt", inhalt.ToString)

    carwashbuxtehude schrieb:

    Ich hatte es schon verbessert.

    carwashbuxtehude schrieb:

    VB.NET-Quellcode

    1. inhalt.AppendLine(Me.TableLayoutPanel1.Controls(i).Text)
    Was bitte :?:
    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!
    So sieht es jetzt aus und die Textdatei wird richtig geschrieben.
    Oder habe ich noch etwas übersehen?

    VB.NET-Quellcode

    1. Dim inhalt As New System.Text.StringBuilder
    2. For i = Me.TableLayoutPanel1.Controls.Count - 1 To 0 Step -1
    3. If TypeOf Me.TableLayoutPanel1.Controls(i) Is ComboBox Or TypeOf Me.TableLayoutPanel1.Controls(i) Is MaskedTextBox Then
    4. inhalt.AppendLine(Me.TableLayoutPanel1.Controls(i).Text)
    5. End If
    6. Next
    7. IO.File.WriteAllText("C:\DatenWS\Neu.txt", inhalt.ToString)

    carwashbuxtehude schrieb:

    übersehen
    Was ist der Sinn dieser Übung?
    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!
    Wenn ich sehe, mit welchem Aufwand Du Texte abspeicherst, kann ich den Aufwand abschätzen, mit dem Du die Inhalte reaktivierst.
    Generiere Dir Settings und binde sie an die jeweiligen Controls.
    Feddich.
    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!
    Hört sich bei dir so einfach an!
    Es sind nicht immer die gleichen werte die gespeichert werden sollen und sie werden für einen bestimmten Zeitraum gespeichert.
    Den gespeicherten Zeitraum kann man dann wieder abrufen.


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „carwashbuxtehude“ ()

    Das ist ganz

    carwashbuxtehude schrieb:

    einfach
    ;)
    Such im Forum nach settings an controls binden.
    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!