Entwickler-Ecke
WinForms - Form lässt sich nur einmal öffnen....
Emwykey - Fr 21.03.14 12:17
Titel: Form lässt sich nur einmal öffnen....
Hallo,
ich hab eine C# Application mit .NET CF 3.5 (läuft auf einem Win CE 6 Gerät)...
Auf jeden Fall besteht die Anwendung aus mehreren Forms..
Die Hauptform ist ein Menü über welches man durch Buttons weitere Forms öffnen kann...
Der Formaufruf sieht so aus :
C#-Quelltext
1: 2: 3: 4: 5:
| void menueButton1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); } |
Das Funktioniert auch super ABER wenn ich Form 2 dann über [x] oder über die zurück -Methode die einfach ein Close aufruft beende und wieder starten möchte funktioniert das ganze nicht mehr, ich bekomm die 2. Form unvollständig angezeigt und das komplette Programm hängt sich auf...
ich habe einige versuche unternommen bis dato erfolglos.
ich habe Form2 global deklariert ..
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Form2 f2;
void menueButton1_click(object sender, eventArgs) { if (f2 != null) { f2.Dispose(); f2.Close(); f2 = null; }
f2 = new Form2(); f2.Show(); } |
ich habs mit GC.Collect() im Closing event der Form2 versucht genauso im Closed event ....
ich hab Menue() testweise nicht mit .hide() versteckt stellenweise schon...
mit
C#-Quelltext
1: 2:
| f2.show(); f2.BringeToFront(); |
genausowenig erfolg gehabt..
bestimmt ist die Lösung ganz einfach aber ich verzweifel fast daran...
wenn mir jemand einen Rat dazu hat, ich wäre über jede Antwort dankbar....
Moderiert von
Th69: Code- durch C#-Tags ersetzt
Ralf Jansen - Fr 21.03.14 12:36
Das klingt eher so als hättest du kein Problem beim mehrmaligen anzeigen von Formen sondern mit dem was in dieser konkreten Form beim anzeigen noch gemacht wird. Das was dort passiert scheint nicht wiederholbar zu sein und solltest du dir genauer ansehen (Also irgendwas was z.B. im Load oder Shown Event passiert).
Irgendwelche debugbaren Informationen sollte man doch auch von einem CE Device bekommen und wegloggen bzw. anzeigen können. Ohne nähere Informationen wird es immer schwer.
Emwykey - Fr 21.03.14 12:49
Es werden nur die Buttons Editfelder und Labels und die Barcode2 componente des Motorola EMDK geladen ... der Debugger im VS (version 2008) bringt keine Meldung
Wenn ich Schritt für Schritt durchgehe läuft alles bis zum show aufruf problemlos, der scheint auch durchzugehen und dann ist ende..
ich wüsste nicht was ich da loggen sollte..
Th69 - Fr 21.03.14 12:57
Hallo,
dann tippe ich darauf, daß die externe Barcode-Komponente das Problem erzeugt. Entferne es mal temporär und versuche es dann noch mal.
Ralf Jansen - Fr 21.03.14 12:59
| Zitat: |
| Wenn ich Schritt für Schritt durchgehe läuft alles bis zum show aufruf problemlos, der scheint auch durchzugehen und dann ist ende.. |
Wenn du mit dem Debugger dran hängst dann würde ich zum Beispiel auch mal auf stille Exceptions horchen (CTRL+D,E um den Exception Dialog zu öffnen und bei allem relevanten mal Thrown anhaken).
Wenn es sich einfach weghängt und du keine Chance hast da näher ranzukommen würde ich es erstmal mit einer leeren Form nachstellen ob das dann geht. Wenn das geht würde ich auf der Originalform solange Dinge und Code entfernen bis das auch geht. Anhand dessen was du zuletzt entfernt hast kannst du dann den Problemteil erkennnen und entsprechend handeln.
Emwykey - Fr 21.03.14 14:07
Die Sache mit den "stille Exceptions" hat genauso wenig Ergebnis gebracht, allerdings hat das ganze tatsächlich mit einer leeren Form funktioniert..
am Code selber hat es nicht gelegen ich konnte alles auskommentieren ohne erfolg...
Die Lösung des Problemes war: Die Barcodekomponente hat sich beim schließen der Form nicht Korrekt mit geschlossen beendet wie auch immer, sonder weiterhin auf den Laserscanner zugegriffen. Beim wiederöffnen wurde eine neue erzeugt welche dann auch auf den Scanner zugreifen wollte und natürlich keine Möglichkeit mehr dazu hatte ...
Dh Falls irgendwer mal das selbe Problem haben sollte, die Barcode2 componente im Close Event und vor jedem Aufruf einer neuen Form die wieder eine Instanz dieser Komponente erzeugt wird die Eigenschaft "EnableScanner" auf false setzte, im Designer selber auf true...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!