Komisches Problem: Text, der einem Button zugewiesen wird, ist immer leer!

  • VB.NET

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

    Komisches Problem: Text, der einem Button zugewiesen wird, ist immer leer!

    Hey,

    bin heute auf ein komisches Problem gestoßen.

    Ich lese eine mehrzeilige Textdatei in ein String() Array ein.
    Dabei lege ich eine bestimmte Zeile in der Datei als Formulartitel fest, was auch super funktioniert.

    Wenn ich aber versuche, einem Button einen Text aus der Datei zuzuweisen, ist der Inhalt des Buttons danach leer (auch wenn ich ihn im Designer beschriftet habe!)

    Die Zeile selber kann ohne Probleme aus der Datei gelesen werden, wenn ich sie als Formulartitel festlege, funktioniert alles.

    Hier der Programmcode:

    VB.NET-Quellcode

    1. 'Sinnloser Platzhalter wegen Einrückungsfehler...
    2. Public Shared Sub ladeSprachdatei()
    3. Dim sprache1 As Sprache.sprachen
    4. If My.Settings.Lang = "Deutsch" Then
    5. sprache1 = sprachen.Deutsch
    6. ElseIf My.Settings.Lang = "Englisch" Then
    7. sprache1 = sprachen.Englisch
    8. Else
    9. sprache1 = Nothing
    10. End If
    11. texte.Clear()
    12. Dim fileContent As String
    13. If sprache1 = sprachen.Deutsch Then
    14. fileContent = My.Resources.Deutsch
    15. Form21.RadioButton2.Checked = True
    16. ElseIf sprache1 = sprachen.Englisch Then
    17. fileContent = My.Resources.Englisch
    18. Form21.RadioButton1.Checked = True
    19. Else
    20. fileContent = String.Empty
    21. End If
    22. Dim filelines As String()
    23. filelines = fileContent.Split(CChar(vbNewLine))
    24. For i As Integer = 0 To filelines.Length - 1
    25. texte.Add(filelines(i))
    26. Next
    27. Form1.Text = filelines(51) 'Das hier klappt problemlos!
    28. Form1.Button1.Text = filelines(51) 'Das hier klappt eher weniger!
    29. End Sub
    ein Zeilvorschub besteht aus 2 Chars.

    Du aber splittest nur nach einem Char, und der annere bleibt drinne, und sorgt für unerwartetes Verhalten.

    Wenn man eine TextDatei zeilenweise laden möchte, dann am besten mit ReadAllLines, oder mit einem StreamReader. Mit Splitten dranzugehen hat einige Fußangeln, und die Reader handeln das eben korrekt.

    ErfinderDesRades schrieb:


    ein Zeilvorschub besteht aus 2 Chars.

    Du aber splittest nur nach einem Char, und der annere bleibt drinne, und sorgt für unerwartetes Verhalten.

    Wenn man eine TextDatei zeilenweise laden möchte, dann am besten mit ReadAllLines, oder mit einem StreamReader. Mit Splitten dranzugehen hat einige Fußangeln, und die Reader handeln das eben korrekt.

    DankeSchön, daS Sollte helfen. Ich werde eS morgen mal mit einem StreamReader probieren, wie greife ich damit denn auf eine ProjektreSource zu? (Sorry für die großgeSchriebenen S, meine S-TaSte iSt vor ein paar Minuten kaputt gegangen und ich weiß zufällig den ALT-Code für ein großeS S auSwendig... Mal Schauen wie und wann ich die repariere)

    Ich würde dir ja Sehr gerne einen Daumen hoch geben aber leider bekomme ich nur einen "ajax request http error 503"...

    Janik schrieb:

    VB.NET-Quellcode

    1. Form21.RadioButton2.Checked = True
    2. '...
    3. Form1.Text = filelines(51)
    Wie rufst Du denn die Forms auf?
    Sind die etwa nicht mit New erstellt?
    Informiere Dich mal über modale und nicht modale Dialoge.
    -----
    Zur Mehrsprachigkeit on .NET-Programmen gugst Du hier.
    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!