//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; }