Ich habe einen Event-Handler, der das FormClosing-Ereignis abonniert hat. Dieser Event-Handler bietet einen Dialog für den Benutzer, wenn er meine Anwendung beendet. wie folgt:Wie haben Sie zwei Versionen eines Event-Handlers?
private void frmUavController_FormClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
DialogResult dlgResult = MessageBox.Show("Are you sure you want to exit?", "Exit?",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dlgResult == DialogResult.Yes)
{
UtilSTKScenario.PauseScenarioAnimation(UtilSTKScenario._stkObjectRoot);
}
else if (dlgResult == DialogResult.No)
{
e.Cancel = true;
}
}
Da die Anwendung nebeneinander ausgeführt wird; COM-Befehle in eine andere Anwendung einfügen - Ich möchte, dass meine Anwendung beendet wird, wenn die Anwendung, die COM-Befehle empfängt, nicht gestartet wird (oder während der Ausführung geschlossen wird). Dies wird folgendermaßen erreicht:
static UtilSTKScenario()
{
// give time for active form to show
Thread.Sleep(100);
_stkProgramId = ConfigurationManager.AppSettings.Get("stkProgramId");
if (CheckIfStkIsLaunched())
{
InitAllFields();
}
else
{
HideController dHideController = new HideController(((frmUavController)Form.ActiveForm).HideControllerUi);
((frmUavController)Form.ActiveForm).Invoke(dHideController);
Application.Exit();
}
}
Der Aufruf von 'Application.Exit()' bewirkt, dass das FormClosing-Ereignis ausgelöst wird. Das will ich nicht - ich möchte, dass die Anwendung einfach beendet wird.
Irgendwelche Ideen?
WulfgarPro
meine aktuelle Lösung ist die Verwendung einer Flagging-Variable. Ich werde jetzt den Absender anschauen. Vielen Dank! – wulfgarpro
Sender ist immer das aktive Formularobjekt; in diesem Fall - frmUavController. – wulfgarpro