У меня есть обработчик событий, подписанный на событие FormClosing. Этот обработчик событий предоставляет диалог для пользователя при выходе из моего приложения; вот так:
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;
}
}
Потому что приложение работает параллельно; внедрение COM-команд в другое приложение - я хочу, чтобы мое приложение закрывалось, если приложение, получающее COM-команды, не запускается (или закрывается во время выполнения) Это достигается так:
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();
}
}
Вызов 'Application.Exit ()' вызывает событие FormClosing. Этого я не хочу - скорее, я хочу, чтобы приложение просто закрывалось.
Есть идеи?
WulfgarPro