"Prozess.Exited" - aber kein Focus zum "SynchronizingObject"

Christian Kusmanow

Erfahrenes Mitglied
Hallo FIAE's!

Hab ein Problem mit dem System.Diagnostics.Process-Objekt.
Ich möchte in meinem Prog die Funktionalität anbieten, Windows-Audioeigenschaften aufzurufen.

Parameter:
Code:
pAudioPreferences.StartInfo.FileName = "mmsys.cpl";
pAudioPreferences.SynchronizingObject = this;
pAudioPreferences.Start();

Nach beenden der Audieigenschaften wandert das Form in den Hintergund aller anderen geöffneten Programme.
Ich kann nicht nachvollziehen warum das so ist.
Der Eventhandler
Code:
pAudioPreferences.Exited += new System.EventHandler(this.pAudioPreferences_Exited);
in dessen Delegat ich die Methode "this.BringToFront()" ausgeführen lasse, hilft mir auch nicht weiter.

Das Prozess-Objekt hab ich über die ToolBox-Components eingefügt.
Der pAudioPreferences.Start()-Aufruf geschieht vom "MainMenu" aus.
Habe festgestellt das sich ein "MainMenü"-Element nicht als "SynchronizingObject" angeben lässt. Hat das was damit was zu tun?
Muss man die Z-Order über die "WindProc"-Methode steuern?
 
Zuletzt bearbeitet:
Ich hab den Fehler gefunden!
Der Fehler liegt höchstwahrscheinlich im c#.NET. :suspekt:
Ich sag's doch, diese bekloppten MS ProgrammierAffen. :)

Mein Programm hatte den FormBorderStyle."FixedToolWindow".
Nachdem ich den FormBorderStyle auf "Fixed 3D" umgeändert hab wurde mein Programm, so wie es sein soll, nach beenden des Prozesses wieder in den Fordergrund gebracht.

Falls das Vielleicht doch andere Ursachen hat und jemand breits rausgefunden hat, was dieses Phänomen auslöst, würde ich mich freuen wenn er was dazu Posten könnte.
 
Hallo,

Hab dieses Problem auch schon gehabt, wenn ich mit FixedDialog und parent-Zuweisung gearbeitet habe. Hab allerdings nicht herausfinden können an was das liegt. Gelöst habe ich es folgendermassen.

Code:
this.TopMost=true;
this.TopMost=false;

dann haste dein fenster auch wieder zuvorderst. Ist allderings eher ein hack :)

Gruss Alexander
 

Neue Beiträge

Zurück