在习惯了写固定大小的窗体之后总是会遇到界面显示不开的问题,在自己的电脑上运行的好好的,一跑到人家电脑上就动不动少一块显示不开。这哪能行,这以后那帮人用着用着屏幕稍微小点不就得找我调软件,你说咱总不能逼着人家换个显示器吧。
为此我可是煞费苦心,当初年少无知的我可是快要走遍互联网的大街小巷,腿都快累断了。为啥实现都那么复杂哩?
看了好多文章其实现原理几乎都是窗体打开时使用递归遍历所有控件,然后一个一个调尺寸,调位置。天哪,头都大了,就为了那么一个小小的功能给本来就臃肿的项目白白增加了一个类来实现,显得就更臃肿了。况且速度好像也不快(虽然我没测试过<( ̄ˇ ̄)/ 不过这不影响我吐槽)。
为此,在一次机缘巧合的情况下,让我偶然发现了两个控件-tableLayoutPanel和flowLayoutPanel。
前者是列表布局,而后者是流布局。
我实现的窗体自适应就是通过前者——列表布局实现的,话不多说,上图!
由于比较懒,这里就拿公司的Demo做示例啦,可以看到这样一个拉伸后的效果。
接下来就是具体的实现
1、首先拖一个tableLayoutPanel到窗体上