用控件panel做  这个控件是专门放其他控件或用户控件的,把分别要实现的功能(如参数设置,网络设置...) 做成不同的用户控件,然后通过点击左边的按钮,在panel上加载不同的用户控件
加载方法
this.panel1.Controls.Clear();//先清空
this.panel1.Controls.Add(new xtsz(this.strUserCode));加载用户控件  至于左边的按钮用什么实现应该就不用我说了,反正实现办法很多,也可以用ToolBar把选择的按钮当菜单放在上面

解决方案 »

  1.   

    燕哥:
    将控件放在panel中,那怎样进行动态的定位,还有,又应怎样动态的取得panel中各控件的值呢?
    左边的菜单不只是静态的,也是动态的,鼠标移上去颜色改变并有下划线?我觉得问题很多,不仅仅是你所说的那么简单,不过,我还非常感谢你!
      

  2.   

    哦我懂你的意思了,先没看清楚,原来是一个确定按钮保存所有的状态啊研究ING
      

  3.   

    VB下可以用SSTab选项卡做同样的功能,但是QQ那明显是用2个控件分开来做成的,找不到该用什么办法做````555555555
      

  4.   

    我觉得他还是应该用那个panel来做,问题就是怎么做右边的动态保存,这做好了,左边的东西好解决,顶多就是做的没那好看
    有几个思路,但是办法都好笨,自己都不忍心这样做下去
      

  5.   

    平仄大哥,有这样的控件,但较大,哪位能提供一个ftp空间给大家下载,但我最终想知道原理,还请大侠们出手
      

  6.   

    其实右边也很简单,它只是通过左边的按钮来控制右边PANEL控件或自定义控件的显示与隐藏,当控件只有显示或隐藏时,它里面的状态修改的话,如果你按保存也是会相应的保存起来的!我做个类似的,比如说像SQL里的DTS数据导入导出的那种界面,就有点像这样的原理。
      

  7.   

    把状态存在一个XML里面,用户点击的时候根据XML的内容还原用户设置.
      

  8.   


    顶!还是等我问问TENCENT的哥们吧 :-)
      

  9.   

    其实实现起来很简单,就是通过增加panel来实现的(不过增加的panel不是动态生成的,而是事先设计好的),例如主窗体为mainform,主窗体的左边就不说了,右边是一个mainPanel主面板,增加的每个panel都是另外一个窗体里的panel,例如form1窗体内有个panel1面板(内容是参数设置),form2窗体也有个panel1面板(内容是网络设置),以此类推,有几个功能设置就有几个窗体,每个窗体都有一个panel1面板.当点出主窗体左边的按钮里,动态的在mainPanel里增加,例如点参数设置的代码如下:
    form1 info = new form1();
    this.mainPanel.Controls.Clear();
    this.mainPanel.Controls.AddPanel(info.panel1);左边                   右边:
    参数设置       mainPanel
    网络设置
    声音设置