none
Socket nach Formwechsel nicht mehr verbunden RRS feed

  • Frage

  • Hallo,

    ich programmiere gerade an einer Steuerungssoftware für ein Netzwerkgerät. (C#, Winforms).

    Ich habe (nicht ganz elegant) beim Start der ersten Form gleich die zweite global mit erzeugt. 

    Außerdem gibt es eine zusätzliche Klasse Connection, die die Verbindung zum Gerät aufbaut. Man klickt also in der ersten Form auf Verbinden, und die Socketverbindung funktioniert tadellos. Sobald ich auf die zweite Form wechsle, Einstellungen tätige und dann wieder mit Show() auf die erste wechsle, scheint die Verbindung getrennt zu sein.  (die erste wird nicht mit Close() geschlossen, sondern mit Hide() versteckt)

    Die Form-Objekte sind wohl nicht die gleichen. Gibt es eine Möglichkeit, den Zugriff zwischen beiden Formen so zu erhalten, dass ich eine Modalität erreiche? (und das Socket-Objekt da bzw. verbunden bleibt?)

    Beste Grüße


    • Bearbeitet .net-tier Dienstag, 7. August 2012 13:40
    Dienstag, 7. August 2012 13:38

Alle Antworten

  • Hallo,

    ohne Code kann man nur schwer sagen, was schief läuft. Allerdings klingt Dein Ansatz auch wirklich alles andere als elegant. Warum brauchst Du für eine Socket Verbindung ein Formular? Ein Formular dient der Visualisierung, ein Socket bietet jedoch keine visuelle Komponente. Erstelle Deine Socket Instanz unabhängig von einem Formular und reiche die Instanz zwischen den Formularen durch.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de

    Mittwoch, 8. August 2012 05:37
    Beantworter
  • Um Gottes willen, nein, ich weiß natürlich dass eine Form nichts mit einem Socket zu tun hat ;-)

    Mein Problem war nur, dass ich den Socket im Startformular meines Programms instanziert und verbunden habe, dieser aber nach dem Verstecken und neu Anzeigen der Form nicht mehr verbunden war. Das Problem ist gelöst. Die Schwachstelle war, dass ich im zweiten Formular das erste neu erzeugt hatte anstatt es zu übergeben. Dementsprechend war es ja ein anderes Objekt, das mit Show() wieder angezeigt wurde, und ergo war der neu mit erzeugte Socket auch noch unverbunden.

    Mittwoch, 8. August 2012 12:19