public bool ShowPage(int pageNo)
{
if (panelMiddle.Controls.Count > 0)
{
UserControl currentPage = panelMiddle.Controls[0] as UserControl;
IWizardPage currentWizPage = currentPage as IWizardPage;
bool nextEnabled = buttonNext.Enabled;
bool previousEnabled = buttonPrevious.Enabled;
bool cancelEnabled = buttonCancel.Enabled;
buttonNext.Enabled = false;
buttonPrevious.Enabled = false;
buttonCancel.Enabled = false;
try
{
if (!currentWizPage.OnLeavePage(pageNo > _currentPage))
return false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
finally
{
buttonNext.Enabled = true;
buttonPrevious.Enabled = true;
buttonCancel.Enabled = true;
}
}
_currentPage = pageNo;
UserControl page = _pages[_currentPage];
IWizardPage wizPage = page as IWizardPage;
new TabOrderManager(page).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst);
panelMiddle.Controls.Clear();
panelMiddle.Controls.Add(page);
page.Dock = DockStyle.Fill;
labelTitle.Text = wizPage.Title;
EnableDisable();
SetButtonTexts();
wizPage.OnShowPage(_state);
if (PageChanged != null)
PageChanged(_currentPage+1, _pages.Count);
return true;
}