想实现类似网站的简单样式,上面有一横幅,可以弄个底图修饰一下,下面分左右两块,左边的放treeview之类的用于菜单选择,右边是表单,当用户点击左边的某个菜单项时右边立即显示相应的表单(form)。左边与右边的接缝处可以横向拉动宽窄。
不知用vs 2005提供的现有控件就足以实现还是需借助别的第三方控件?我试用了一下splitcontainer控件,它由两个panel组成,我不知道点击左边那个panel上的treeview的某个节点如何能让指定的form显示在右边的Panel上;另外我希望横向拉动时接缝处有一个三角形的图标以方便拉动,但这个splitcontainer控件运行后接缝处好像就是一条黑线不太符合要求。
最后一点:用户点击某个treeview节点时右边显示出一个form,当用户又点击treeview的另一个节点时原先打开的form能否自动关闭再显示新的form。

解决方案 »

  1.   

    这个自己写触发函数就是了.
    treeview的事件里
      

  2.   

    楼主说的那种Windows Form是比较常见的应用布局,关于左右分栏没有什么难的,只需要放个splitcontainer就可以,如果想搞成VS IDE这样的方式,可以通过使用DockPanel suite这样的组件,以下是网站地址,提供完整示例和源代码,
    http://sourceforge.net/projects/dockpanelsuite/关于左右不同控件之间的联动,其实可以想象成控件间数据的交互,这个可以参考我的博客,
    Windows窗体间的数据交互
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx如果你想更深入的学习,给你两个更强大的例子,如果基础不好,你可能要多花点时间看代码,不过看过后会受益匪浅,应该不会有类似的疑问。
    http://www.codeproject.com/KB/cs/peteredit.aspx
    http://www.codeplex.com/MiniSqlQuery
      

  3.   

    我试了一下,一个spliContainer,其实右边的panel2里面可以放置你需要的控件,不用再做成form,如果你点击左边panel1里的treeview,可以隐藏你不需要的控件,
    private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                this.textBox1.Parent = this;
                this.textBox1.SendToBack();
            }