在Windows资源管理器中好像菜单、工具条、地址栏、链接等都是放在一个splitContainer1.panel1里,自己写过一个这样的界面可是无法达到根据面板内控件的高度与数量自动调整大小的功能。panel的大小总是在最大化与调整窗口大小后发生变化。试着写splitContainer1与splitContainer1.panel的RESIZE事件和限定panel大小等,都无法解决这个问题。不知哪位朋友有更好的方法。

解决方案 »

  1.   


            private void splitContainer1_Panel1_Resize(object sender, EventArgs e)
            {
                splitContainer1.SplitterDistance = menuStrip1.Height + toolStrip1.Height + toolStrip2.Height;
            }
    在窗口最大化时虽然引发splitContainer1_Panel1_Resize事件,而且SplitterDistance 的值也是想要的,但最终的显示结果却比正常的尺寸要大很多。这是为什么呢?
      

  2.   

    在splitContainer里面嵌入splitContainer然后再分。这样就不用你自己写代码来维护了,它自己就可以调整了!
      

  3.   

    不明白在Resize事件中设置splitContainer1.SplitterDistance的值和lz所说的panel的大小有什么关系。
    SplitterDistance属性是用来指定拆分器离容器的左边缘或上边缘的距离的啊。
      

  4.   

    这样好像不行,因为windows资源管理器本身并非这样实现。
      

  5.   

    但是splitcontainer的左右部分能调节大小吗?