我想用c# windows application做一个类似程序安装,有上一步下一步的界面.只想做在一个FORM上,而不要有几步就做几个FORM.
我的想法是,在FORM里加入一个,TabControl,每一步对应一个TabPage.TabControl下面给出上一步,下一步按钮.但,我希望用户按照步骤顺序填写,如果用TabControl,用户可以直接选对应tab跳过前面的步骤.想问问大侠有没有什么方法让用户不能直接选tab页?
如果不用tabcontrol也可以,希望提供更好的思路.

解决方案 »

  1.   

    不用tabControl不就可以了吗,用其他的容器控件也是可以实现的
      

  2.   

    可以把不同的窗体代码放在不同的Panel中,到第几步就显示第几个Panel,其余的设成不可见
      

  3.   

    对,但是在编程设计PANEL的时候,即使把VISIBLE设成FALSE也看得到啊.好几个PANEL叠在一起,眼睛也看花了,不现实啊.
    那,除了tabcontrol还有什么其他的控件?希望大侠指点.
      

  4.   

    VB6之后就没做过WinForm开发了,WinForm至今还是没有Wizard控件?ASP.NET 2.0刚刚有了Wizard控件。没有Wizard控件就自己封装一个咯,让它好像TabControl那样支持设计时的分页显示。至于Panel的老办法,以前我的做法是这样的:一个向导Form是640*480吧,然后Panel是600*400吧,假设。然后开发时把Form拉到1280*960,那么里面就可以放4个600*400的Panel啦,这样设计时就互不干扰了,仅当Form运行时自动调整到正确大小并自动把Panel定位。
      

  5.   

    to 想问问大侠有没有什么方法让用户不能直接选tab页?把tab的标题部分拖出窗体外,即用窗体的titlebar来遮盖。
      

  6.   

    你不一定要在设计器里面就把panel放在那个地方
    代码里面动态实现即可 add/remove control 当然,我还是建议你看看这个:http://www.codeproject.com/cs/miscctrl/SampleWizard.asp
      

  7.   

    在TabControl的SelectedIndexChanged事件里
    控制
      

  8.   

    一个解决办法:设计一个类,用来存放安装过程中的所有数据,例如,安装路径、序列号、注册人等。
    等待用户所有信息都在每一个步骤中都输入完成,在最后一步进行安装,不需要TABControl什么的,就在每一步验证输入,保存到上面的类中,最后核准信息,开始安装。每一步做一个Form也可以,
      

  9.   

    请问为什么不愿意做成几个,而一定要一个.对用户而言,在视觉外观上1个变化100次和100个没有区别,完全没有,用户是不会知道你的Form到底是一个类实例还是好几个.对你自己而言,如果做成一个更简单,那也算了...可是你显然觉得做一个不知道怎么做(所以才在这里问). 两边都没有好处, 所以很有兴趣知道你的动机是什么.
      

  10.   

    把一堆控件放在界面,然后让其中一个显示其它全都隐藏,然后一一切换.....业务的都很容易这样设计。稍微专业一点的,是动态创建 control,然后把容器部分的 Controls 清空,再把创建的 control 插入其中。
      

  11.   

    业务的都很容易这样设计  -->  业余的都很容易这样设计
    我想起了当年我刚学.net的时候就是用asp.net 开发企业应用系统,最为技术经理当然需要假装很懂....真是误导了那些可怜的程序员。
      

  12.   

    把TabControl放在Panel控件里面,调整Panel大小,把TabPage头遮住就行了。
      

  13.   

    bluesea_2000(我想我是海):
    你的想法有问题,Panel的大小和位置可以用代码控制的