Example #1
0
        protected internal void ActivatePage(WizardPage page, bool backButtonPressed)
        {
            if (BeforePageChanged != null)
            {
                PageChangedEventArgs barg = new PageChangedEventArgs(backButtonPressed);
                BeforePageChanged(this, barg);

                if (barg.Cancel)
                {
                    return;
                }
            }

            // Update the background colors of the tabs
            Color nonSelectedColor = Color.FromArgb((int)(page.BackColor.R * 0.95f), (int)(page.BackColor.G * 0.95f), (int)(page.BackColor.B * 0.95f));

            foreach (WizardPage wizPage in vPages)
            {
                if (wizPage == page)
                {
                    wizPage.PageTabControl.TabPanel.PanelColor = page.BackColor;
                    wizPage.PageTabControl.Padding = new Padding(0, 0, 0, 3);
                    wizPage.PageTabControl.TabPanel.Selected = true;
                }
                else
                {
                    wizPage.PageTabControl.TabPanel.PanelColor = nonSelectedColor;
                    wizPage.PageTabControl.Padding = new Padding(5, 0, 0, 3);
                    wizPage.PageTabControl.TabPanel.Selected = false;
                }
            }

            //Deactivate the current
            if (vActivePage != null)
            {
                vActivePage.Visible = false;
            }

            //Activate the new page
            vActivePage = page;

            if (vActivePage != null)
            {
                //Ensure that this panel displays inside the wizard
                vActivePage.Parent = this;
                if (this.Contains(vActivePage) == false)
                {
                    this.Container.Add(vActivePage);
                }
                //Make it fill the space
                vActivePage.Dock = DockStyle.Fill;
                vActivePage.Visible = true;
                vActivePage.BringToFront();
            }

            //What should the back button say
            if (this.PageIndex > 0)
            {
                btnBack.Enabled = true;
            }
            else
            {
                btnBack.Enabled = false;
            }

            //What should the Next button say
            if (vPages.IndexOf(vActivePage) < vPages.Count-1 && vActivePage.IsFinishPage == false)
            {
                btnNext.Enabled = true;
                pnlNext.Visible = true;

                //Don't close the wizard :)
                btnNext.DialogResult = DialogResult.None;

                if (alwaysShowFinishButton)
                    pnlFinish.Visible = true;
                else
                    pnlFinish.Visible = false;
            }
            else
            {
                pnlFinish.Visible = true;

                if (alwaysShowFinishButton)
                {
                    btnNext.Enabled = false;
                }
                else
                {
                    pnlNext.Visible = false;
                }

                //btnNext.Text = "Fi&nish";
                //Dont allow a finish in designer
                /*if (DesignMode == true
                    && vPages.IndexOf(vActivePage) == vPages.Count-1)
                {
                    btnNext.Enabled = false;
                }*/
                //else
                //{
                    //btnNext.Enabled = true;
                    //If Not in design mode then allow a close
                    btnNext.DialogResult = DialogResult.OK;
                //}

            }

            //Cause a refresh
            if (vActivePage != null)
                vActivePage.Invalidate();
            else
                this.Invalidate();

            if (PageChanged != null)
                PageChanged(this, EventArgs.Empty);
        }
Example #2
0
 /// <summary>
 /// Removes the given page from the collection
 /// </summary>
 /// <param name="value">Page to remove</param>
 public void Remove( WizardPage value )
 {
     //Remove the item
     List.Remove( value );
 }
Example #3
0
 /// <summary>
 /// Moves to the page given and calls <see cref="WizardPage.ShowFromNext"/>
 /// </summary>
 /// <remarks>Does NOT call <see cref="WizardPage.CloseFromNext"/> on the current page</remarks>
 /// <param name="page"></param>
 public void NextTo(WizardPage page)
 {
     //Since we have a page to go to, then there is no need to validate most of it
     ActivatePage(page, false);
     //Tell the application, I have just shown a page
     vActivePage.OnShowFromNext(this);
 }
Example #4
0
 /// <summary>
 /// Adds a new page at a particular position in the Collection
 /// </summary>
 /// <param name="index">Position</param>
 /// <param name="value">Page to be added</param>
 public void Insert( int index, WizardPage value )
 {
     List.Insert(index, value );
 }
Example #5
0
 /// <summary>
 /// Finds the position of the page in the colleciton
 /// </summary>
 /// <param name="value">Page to find position of</param>
 /// <returns>Index of Page in collection</returns>
 public int IndexOf( WizardPage value )
 {
     return( List.IndexOf( value ) );
 }
Example #6
0
 /// <summary>
 /// Detects if a given Page is in the Collection
 /// </summary>
 /// <param name="value">Page to find</param>
 /// <returns></returns>
 public bool Contains( WizardPage value )
 {
     // If value is not of type Int16, this will return false.
     return( List.Contains( value ) );
 }
Example #7
0
 /// <summary>
 /// Adds an array of pages into the collection. Used by the Studio Designer generated coed
 /// </summary>
 /// <param name="pages">Array of pages to add</param>
 public void AddRange(WizardPage[] pages)
 {
     // Use external to validate and add each entry
     foreach(WizardPage page in pages)
     {
         this.Add(page);
     }
 }
Example #8
0
        /// <summary>
        /// Adds a WizardPage into the Collection
        /// </summary>
        /// <param name="value">The page to add</param>
        /// <returns></returns>
        public int Add(WizardPage value )
        {
            int result = List.Add( value );

            return result;
        }