private void WizardManager_Load(object sender, EventArgs e) { panelSheetPlaceHolder.Controls.Clear(); panelSheetPlaceHolder.SuspendLayout(); foreach (UserControl sheet in sheets) { sheet.Visible = false; sheet.Dock = DockStyle.Fill; IWizardSheet sheetInterface = sheet as IWizardSheet; sheetInterface.Data = RuntimeData; sheetInterface.Manager = this; panelSheetPlaceHolder.Controls.Add(sheet); } panelSheetPlaceHolder.ResumeLayout(); ShowPage(0); UpdateButtonState(); }
void ShowPage(int index) { if (index < 0 || index >= sheets.Count) { throw new ArgumentOutOfRangeException(); } if (index != currentPageIndex) { IWizardSheet prevSheetInterface = sheets[currentPageIndex] as IWizardSheet; if (!prevSheetInterface.OnLeave()) { return; } UserControl prevSheet = sheets[currentPageIndex] as UserControl; prevSheet.Visible = false; } UserControl sheet = sheets[index] as UserControl; IWizardSheet sheetInterface = sheets[index] as IWizardSheet; sheet.Visible = true; char[] seprator = new char[] { '|' }; string[] texts = sheet.Tag.ToString().Split(seprator); if (texts.Length != 2) { throw new ArgumentException("Wrong user control tag"); } labelSheetName.Text = texts[0]; labelSheetDescription.Text = texts[1]; currentPageIndex = index; sheetInterface.OnEnter(); }