MDI + Daten aus anderer Form laden

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Marc.

    MDI + Daten aus anderer Form laden

    Moin zusammen,

    ich habe ein Problem mit dem Laden von Textboxen in einer anderen Form und mitt der MDI Option.
    Wenn ich es ohne die MDI gemacht habe, hat es geklappt. Folgendes Problem habe ich:

    Eine Form (frmSpielerdaten) hat Textboxen (txtHeimSpieler1 - txtHeimSpieler6 und das gleiche für Gast und 2 x Mannschaftsname) - also 14 Stück.
    Wenn ich die Textboxen gefüllt habe und auf OK klicke geht die Form frmSpielstand auf und die soll die Daten aus den Textboxen in Lables schreiben.
    Der Code dazu lautet:

    VB.NET-Quellcode

    1. Public Class frmSpielstand
    2. Private Sub frmSpielstand_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. lblHeim.Text = frmSpielerdaten.txtHeimMannschaft.Text
    4. lblHeimSpieler1.Text = frmSpielerdaten.txtHeimSpieler1.Text
    5. lblHeimSpieler2.Text = frmSpielerdaten.txtHeimSpieler2.Text
    6. lblHeimSpieler3.Text = frmSpielerdaten.txtHeimSpieler3.Text
    7. lblHeimSpieler4.Text = frmSpielerdaten.txtHeimSpieler4.Text
    8. lblHeimSpieler5.Text = frmSpielerdaten.txtHeimSpieler5.Text
    9. lblHeimSpieler6.Text = frmSpielerdaten.txtHeimSpieler6.Text
    10. lblGast.Text = frmSpielerdaten.txtGastMannschaft.Text
    11. lblGastSpieler1.Text = frmSpielerdaten.txtGastSpieler1.Text
    12. lblGastSpieler2.Text = frmSpielerdaten.txtGastSpieler2.Text
    13. lblGastSpieler3.Text = frmSpielerdaten.txtGastSpieler3.Text
    14. lblGastSpieler4.Text = frmSpielerdaten.txtGastSpieler4.Text
    15. lblGastSpieler5.Text = frmSpielerdaten.txtGastSpieler5.Text
    16. lblGastSpieler6.Text = frmSpielerdaten.txtGastSpieler6.Text
    17. If frmSpielerdaten.txtHeimSpieler5.Text = "" Then
    18. lblHeimSpieler5.Visible = False
    19. ElseIf frmSpielerdaten.txtHeimSpieler6.Text = "" Then
    20. lblHeimSpieler6.Visible = False
    21. End If
    22. If frmSpielerdaten.txtGastSpieler5.Text = "" Then
    23. lblGastSpieler5.Visible = False
    24. ElseIf frmSpielerdaten.txtGastSpieler6.Text = "" Then
    25. lblGastSpieler6.Visible = False
    26. End If
    27. End Sub
    28. End Class


    Also ganz simpel und ohne viel schnick-schnak. Soll ja auch nicht viel können oder speichern oder der gleichen.

    Als ich das Programm geschrieben habe und alles in einem eigenen Fenster gemacht habe, hat es so geklappt. Jetzt mit MDI bleiben die Labels leer - warum?
    Ich denke mal, frmSpielerdaten ist der Name der Klasse, nicht aber eine mit New erstellte Instanz dieser Klasse.
    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!
    Richtig, alles sind eigene Klassen / Formen.
    Ich greife von der einen Form nur auf die andere zu. Sage hier das Lable X auf FormY.textbox zugreifen soll und daraus den Text nehmen soll. Aber es hat ja geklappt vor dieser MDI Sache, wo alles ein eigenes Fenster hatte... Das ist das blöde. Ich möchte da nicht so viel machen mit speichern und co. Ich lasse das Fenster einfach geöffnet und lade die andere Form und die zieht die Inhalte aus dem offenen Fenster heraus.