小弟目前的需求是这样的:
    要做一个似类上一步,下一步的向导界面,几个步骤是由多个Panel来实现的,点下一步或上一步时就显示相应的Panel
但是显示起来非常麻烦,要判断当时panel的位置,只好一个一个地去做
    想找一个全局变量之类的来记录每个PANEL的值,但是自己又没有办法来实现。自己写的代码如下://下一步的单击事件的处理方法 
 void btNext_Click(object sender, EventArgs e)
        {
            if (this.panel1.Visible == true)
            {
                this.panel1.Hide();
                this.panel2.Visible = true;
            }
            else if (this.panel2.Visible == true)
            {
                this.panel2.Hide();
                this.panel3.Visible = true;
            }
        }感觉这样写太麻烦了,上一步的按键事件也这样写,而且还要判断每个panel中是否有无效数据。。
有没有简便一点的方法 ,如果步数多起来我这种方法完全不可取啊。

解决方案 »

  1.   

    private int index=1;void btNext_Click(object sender, EventArgs e)
    {
        index++;
        Controls["panel" + index.ToString()].BringToFront();
    }void btPrevious_Click(object sender, EventArgs e)
    {
        index--;
        Controls["panel" + index.ToString()].BringToFront();
    }
    //再判断一下当前是在最后一个,或者第一个改一下按钮的Enable就可以了
      

  2.   

    或者换个思路,用一个Panel,把原来多个Panel中的控件和布局做成多个UserControl面板。
    在点击上一步或下一步的时候在Panel中添加或移除UserControl面板。
    无效数据的校验可以放在每个UserControl面板类的代码中进行。
    这样UserControl可以重用面板,而且每个面板处理各自的功能,代码看起来也比较清晰点。