用pagecontrol控制吧,那个比较方便

解决方案 »

  1.   

    MDI子窗体,上面控件放父窗体里
      

  2.   

    可以直接用7个panel, 将下面不同部分分别设计,初始时全部隐藏,然后在哪一步,你就显示对应的panel好了或者同楼上,用页控件来实现。
      

  3.   


    弄7个form,这应该不是很好的解决方案吧。
      

  4.   

    我想说7个panel也好7个form也好,最终用户使用上区别并不是很大,并没有严重影响效率的情况发生,所以只要能实现这几种方式都是可取的。
      

  5.   

    我觉得7个form设计起来会容易一些
    7个panel,设计器里放不下,设计的时候会看起来乱糟糟的
    总之你最终给用户看的时候不乱就行了,用户才不知道你到底怎么实现的
      

  6.   

    当然也可以7个panel分别都放到tabcontrol里,到时候一次只显示一个,不让用户自己随便切换.
      

  7.   

    七个界面,pagecontrol,很好做的
      

  8.   

    建议楼主看一下SplitContainer,将上半部和下半部分分开,上半部分用同一个就好了。
      

  9.   

    用tabControl最简单其他的都要复杂些。
    当然,条条大路通罗马,看你的思路吧。
      

  10.   

    如果推翻了美工和交互设计蓝图,胡乱“为了用控件而用控件”,就没有什么意思了。所以这里寻找处理方法,首先不能离开这个UI设计,不能用跟这个UI设计毫不相关的控件去实现。你“感觉太繁琐了”,那是因为你没有用抽象的思想去设计。比如说,你为程序设计一个数据结构var Contents = List<IMyContent>();程序初始化时,先把 7 个实现了 IMyContent 接口的 UserControl 实例化,并加载到 Contents 集合中。然后你的界面在上面的图标点到几,就为下面的位置加载什么内容控件,例如private void Button3_Click(object sender, EventArgs e)
    {
        ChangeContent(2);
    }private void ChangeContent(int i)
    {
        panel.Controls.Clear();
        panel.Controls.Add(Contents[i]);
    }或者private void MyContent_Next(object sender, EventArgs e)
    {
        for(var i =0 ; i<Contents.Length; i++)
       {
            if(Contents[i]==(IMyContent)sender)
           {
                 if(i<Contents.Length -1)
                      ChangeContent(i+1);
                 return;
            }
       }
    }这就实现了随时切换。通过认真研究 IMyContent 有什么必要的属性、方法、事件,你就可以搞清楚这个框架的行为。
      

  11.   

    var Contents = List<IMyContent>();这里少写了一个关键字 new ,请自己补充上。
    总之,第一不要乱改UI设计。第二就是要将“繁琐”抽象出来,要学习一点软件设计知识,简单地分层实现任意难度的东西。