具体看看这个例子:TSWizard - a wizard framework for .NET
http://www.codeproject.com/cs/miscctrl/TSWizard.asp

解决方案 »

  1.   

    谢谢TheAres(班门斧)的回复,我也正看着这个例子,不太明白,比如private void back_Click(object sender, System.EventArgs e)中的System.EventArgs e是什么意思?
      

  2.   

    EventArgs 是包含事件数据的类的基类.
    此类不包含事件数据,在事件引发时不向事件处理程序传递状态信息的事件会使用此类。如果事件处理程序需要状态信息,则应用程序必须从此类派生一个类来保存数据。
      

  3.   

    设定一个对象不就行了吗?
    比如:
    Form f1=new Form();
    Form f2=new Form();返回的时候,读取f1不就结了?不知道这样行不行?大家给我所说.
      

  4.   

    这是关于向导的问题,大家最好察看向导方面的资料,http://www.codeproject.com的确是个好地方。
      

  5.   

    为什么不在同一个窗体中做?
    你可以用Tab控件,这样处理起来不是更方便些。
      

  6.   

    想请教一下,tab控件是个什么东东?VS7自带的控件吗?我好像没找到呀?
      

  7.   

    简单啊!比如
    form1要使用form2上的textbox则
    用form1(form2 o)重新一下构造!然后用o.textBox修改相应的数据!当然要高textbox为public
      

  8.   

    如果重新构造的话,原来的对象被dispose吗?历史数据不就丢失了吗?
      

  9.   

    可以自己在上一个FORM里面写一个PROPERTY用来读取这个FORM的默认实例。得不到RUNTIME的默认实例你是怎么也得不到上个窗体的任何部件属性
      

  10.   

    楼顶TheAres(班门斧)介绍的例子,不解第八行
    this.ShowStep += new System.EventHandler(this.Step4_ShowStep);在private void InitializeComponent()中 1.private void Step4_ShowStep(object sender, System.EventArgs e)
     2.{
     3.  MethodInvoker mi = new MethodInvoker( this.DoWork );
     4.  mi.BeginInvoke(new AsyncCallback(DonePreparing), null);
     5.}
     6.private void DoWork()
     7.{
     8.  Step2 step2 = Wizard.GetStep("Step2") as Step2;
     9.  if( step2 == null )
    10.  {
    11.  throw new ApplicationException("Step2 of the wizard wasn't really step2");
    12.  }
    13.}
    14.private void DonePreparing(IAsyncResult result)
    15.{
    16.  if( InvokeRequired )
    17.  {
    18.    Invoke(new AsyncCallback(DonePreparing), new Object [] { result } );
    19.    return ;
    20.  }
    21.  NextStep = "Step5";
    22.  Wizard.MoveNext();
    23.}