コード例 #1
0
        /// <summary>
        /// Show the Next Step
        /// </summary>
        internal void Next()
        {
            IWizardForm now = prevsteps.Tail();

            if (now == null)
            {
                return;
            }

            if (now.GetType().GetInterface("IWizardFinish", false) == typeof(IWizardFinish))
            {
                IWizardFinish wf = (IWizardFinish)now;
                wf.Finit();

                prevsteps = new Stack();
                prevsteps.Push(step1);
                ShowStep(step1, true);
            }
            else
            {
                now.WizardWindow.Visible = false;

                now = now.Next;
                if (now == null)
                {
                    return;
                }

                prevsteps.Push(now);
                ShowStep(now, true);
            }
        }
コード例 #2
0
        /// <summary>
        /// Display a new Step
        /// </summary>
        /// <param name="step">The Step you want to Show</param>
        void ShowStep(IWizardForm step, bool init)
        {
            Panel pn = step.WizardWindow;

            //this.Height = pn.Height + 320;

            pn.Visible   = false;
            pn.Parent    = this.pndrop;
            pn.Dock      = DockStyle.None;
            pn.Anchor    = ((System.Windows.Forms.AnchorStyles)(AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom));
            pn.BackColor = Color.White;
            pn.Left      = 16;
            pn.Top       = 0;
            pn.Width     = pndrop.Width - 2 * pn.Left;
            pn.Height    = pndrop.Height - (pn.Top + llnext.Height);

            lbmsg.Text  = step.WizardMessage;
            lbstep.Text = step.WizardStep.ToString();
            //lbmsg.Left = lbstep.Left - lbmsg.Width;
            lbmsg.Width = lbstep.Left - lbmsg.Left + 2;

            llback.Enabled = (prevsteps.Count > 1);
            if (step.GetType().GetInterface("IWizardFinish", false) == typeof(IWizardFinish))
            {
                llnext.Text    = "Finish";
                llnext.Enabled = true;
            }
            else
            {
                llnext.Text    = "Next >";
                llnext.Enabled = (step.Next != null);
            }

            llnext.Enabled = llnext.Enabled & step.CanContinue;
            llopt.Visible  = (prevsteps.Count <= 1);

            bool show = true;

            if (init)
            {
                show = step.Init(new ChangedContent(this.ContentChanged));
            }
            pn.Visible = show;

            lbmsg.SendToBack();
            lbstep.SendToBack();
            pbtop.SendToBack();
            pbstretch.SendToBack();
        }