Laden...

Nach "Anwendungsframework aktivieren" blockt ein Dialog ein RibbonForm

Erstellt von Chevy77 vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.338 Views
C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 4 Jahren
Nach "Anwendungsframework aktivieren" blockt ein Dialog ein RibbonForm

Hallo zusammen,

wir haben unsere WinForms Anwendung geändert:

Vorher wurde das grundlegende Form (ein DevExpress RibbonForm) per Module gestartet


   <STAThread>
   Public Sub Main()

Jetzt, haben wir den Projekthaken "Anwendungsframework aktivieren" gesetzt, wodurch die Main() nicht mehr durchlaufen wird.

Der Code der Main() Methode musste also in den Konstruktor der grundlegende Form gebracht werden.

Innerhalb des Codes kann es passieren, dass modale Dialoge auftreten.
Diese blockieren nun das RibbonForm und wenn der Dialog geschlossen wird, läd das Ribbon auch weiter.

Vorher war das nicht der Fall. Wie kommt es zu diesem unterschiedlichen Verhalten?

(Sicher könnte ich jetzt die Dialoge in Threads starten, ich möchte jedoch das Problem verstehen bzw warum das Verhalten nun anders ist.)

F
10.010 Beiträge seit 2004
vor 4 Jahren

Und warum habt ihr das Anwendungsframework aktiviert?
Und warum habt ihr dann nicht die entsprechenden Events überschrieben?

C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 4 Jahren

Und warum habt ihr das Anwendungsframework aktiviert?
Und warum habt ihr dann nicht die entsprechenden Events überschrieben?

Zu1: Weil so eine WinForms Anwendung nunmal standardmässig startet und wichtiger: Weil siche die DPIAwareness so gut durch Manifest und App.Config einrichten ließ. Per Modulstart habe ich es nicht hinbekommen, dass mit der Taskmanager anzeigt, dass die Anwendung z.B. "System" DPI-Aware ist, trotz korrektem Manifest und App.Config.

Zu2: Welche Events? PerMonitorV2 Events sind nicht gemeint oder?

F
10.010 Beiträge seit 2004
vor 4 Jahren

Das Anwendungsframework einschalten ist nichts anderes als das die Program Class von WindowsFormsApplicationBase abgeleitet wird.
https://docs.microsoft.com/de-de/dotnet/api/microsoft.visualbasic.applicationservices.windowsformsapplicationbase?view=netframework-4.8

Wenn du dann "Anwendungsereignisse anzeigen" machst, wird dir eine Class erstellt und darin kannst du einen Haufen von Ereignissen überschreiben.

Das kann man übrigens genauso auch in C# machen und hat dann schon fertige Sachen wie
OnStartup, OnCreateSplashScreen oder z.b. OnStartupNextInstance

C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 4 Jahren

Hab nochmal nen test gemacht und auf Module Start umgebaut : läuft nun auch! klasse. wir wissen nun dass wir bei Problemen mit dem winforms start (ich nenn das nur so) immer zurück können.