Problem mit mehreren Forms VB.Net WinForms

  • VB.NET
  • .NET (FX) 1.0–2.0

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

    Problem mit mehreren Forms VB.Net WinForms

    Hallo zusammen,

    ich habe eine Anwendung mit .Net Framework 2.0, zu welcher jetzt noch etwas hinzugefügt werden soll.

    In Form1 werden Daten eingegeben, welche aufbereitet in Form2 (auf einem zweiten Bildschirm) ausgegeben werden sollen.
    Auf Form2 habe ich mir eine UserControl mit mehreren Textboxen angelegt.
    Allerdings werden diese Textboxen nicht mit dem entsprechenden Text gefüllt. Im Debug-Modus zeigt er mir nach Setzen eines Haltepunktes an, dass in den .Text-Properties alles richtig drin steht, so wie es sein soll.
    Allerdings ändert sich auf der eigentlichen Form2 nichts.

    zum Code Form1:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    2. .diverse
    3. .andere
    4. .Sachen
    5. Dim SndForm As New Form2
    6. SndForm.Show
    7. End Sub
    8. Private Sub StarteAuftrag()
    9. .diverse
    10. .andere
    11. .Sachen
    12. Form2.UserControl1.SetzeAnzeige()
    13. End Sub


    Code UserControl:

    VB.NET-Quellcode

    1. Public Sub SetzeAnzeige()
    2. AuftragLesen()
    3. End Sub
    4. Private Sub AuftragLesen()
    5. TextBox1.Text="blabla"
    6. End Sub


    Ich gehe davon aus, dass irgendetwas mit meinem Aufruf der zweiten Form nicht stimmt. Leider hatte ich bisher noch nicht viel mit mehreren Forms am Hut.
    Ich bin für jeden Tipp dankbar.
    @RiLo Willkommen im Forum. :thumbup:
    Die Instanz in Form_Load hat nix aber auch gar nix mit der mist ranz sch... uralten inkompatiblen VB6-Kompatibilitäts-Instanz zu tun, auf die Du in Sub StarteAuftrag() zugreifst.
    Vielleicht siehst Du erst mal hier rein, um mit dem Instanziieren von Formen warm zu werden: Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Probiere dies:

    VB.NET-Quellcode

    1. Private SndForm As Form2
    2. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    3. 'diverse
    4. 'andere
    5. 'Sachen
    6. SndForm = New Form2
    7. SndForm.Show
    8. End Sub
    9. Private Sub StarteAuftrag()
    10. 'diverse
    11. 'andere
    12. 'Sachen
    13. SndForm.UserControl1.SetzeAnzeige()
    14. 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!
    Willkommen im Forum.

    SndForm in SndForm.Show ist ein A4-Blatt, und Form2 in Form2.UserControl1.SetzeAnzeige() ist ein anderes A4-Blatt. Die beiden sehen im leeren Zustand ganz genauso aus, aber wenn Du auf das erste Blatt was schreibst, bleibt das 2. davon unberührt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Entschuldigt bitte meine späte Rückmeldung.

    Danke euch beiden. Mit dem Link von RodFromGermany bin ich schon ein ganzes Stück weitergekommen. Manchmal muss man eben auch nur wissen, wonach man googlen muss :)

    Ich lag also mit meiner Vermutung, dass es etwas mit dem Aufruf nicht stimmt, gar nicht ganz so weit daneben.