Exemplo n.º 1
0
        //protected override bool ProcessDialogKey(Keys keyData)
        //{
        //    if (keyData == Keys.Escape || keyData == Keys.Enter)
        //    {
        //        Wizard.DialogResult = DialogResult.OK;
        //        return true;
        //    }

        //    return base.ProcessDialogKey(keyData);
        //}

        void hostForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (Wizard == null)
            {
                // not the active page
                return;
            }

            bool mustClose = true;

            if (_runner != null && BkgTask != null)
            {
                if (BkgTask != null)
                {
                    if (BkgTask.IsFinished)
                    {
                        mustClose = !Wizard.RepeatWizard;
                    }
                    else
                    {
                        mustClose = _runner.Cancel();
                    }
                }

                if (mustClose)
                {
                    _runner.Dispose();
                    _runner = null;
                }
                else if (FinishPageExit != null)
                {
                    FinishPageExit(this, e);
                }
            }

            e.Cancel = !mustClose;
        }