C#, VS2010, Tablelayout的Dock = Fill属性无效,被statusStrip或toolStrip遮住

来源:互联网 发布:qq僵尸粉淘宝没有了 编辑:程序博客网 时间:2024/06/05 18:59

今天画几个控件,在窗体上放了个TableLayout,然后设置dock属性为Fill,铺满窗口,效果正常。

然后想到要在窗口底部加一个状态栏statusStrip,进行拖放之后发现状态栏把TableLayout遮住了,好像TableLayout的Dock属性失效了,如下图:


怎么办呢?网上搜了一下,也有人碰到这个问题,原因是TableLayout和statusStrip的加载顺序问题,控件直接会有遮挡关系。

解决的办法就是调整两者的加载顺序,比较笨的办法是把TableLayout删掉,重新画,但是如果TableLayout里面已经有很多控件的话有点费事。

比较快的方法是改窗体的Designer文件,调整两个控件在窗体中的Controls.Add()的顺序:


// // FormQueryBs// ...this.Controls.Add(this.statusStrip1);this.Controls.Add(this.tableLayoutPanel1);...
改为:

// // FormQueryBs// ...this.Controls.Add(this.tableLayoutPanel1);this.Controls.Add(this.statusStrip1);...

效果:



问题解决。

这应该算VS2010这个IDE的一点不够完美的小问题吧。



0 0