Autor Beitrag
Emwykey
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 21.03.14 12:17 
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 :
ausblenden 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 ..
ausblenden 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
ausblenden 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 user profile iconTh69: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Emwykey
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Emwykey
Emwykey Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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...