本文适用于VS 2005/2008/2010,winform
之前做某个项目的时候,需要实现winform中label文字的自动换行,当时查找了一些资料,找到2种方法:
- 把Label的Dock属性设置成Fill,并同时把Label的AutoSize属性设成False。
- 计算控件大小以适应文本。
经过实际测试,效果不太好,使用也不方便,尤其是计算控件大小,费时费力不讨好。
最近发现一个简单好用的方法:
先添加一个FlowLayoutPanel控件,然后在FlowLayoutPanel中添加一个Label,Label使用默认属性,设置好FlowLayoutPanel的宽度,就能实现label的自动换行。
截图看一下效果。下面是开发时的截图
运行时的截图
总结一下3种方法:
- 把Label的Dock属性设置成Fill,并同时把Label的AutoSize属性设成False。缺点:不能控制label的位置,不能控制label的长度。优点:换行自动完成。
- 计算控件大小以适应文本。缺点:这是一个非常有难度的技术活,计算很容易出错。优点:可以精确控制label的位置、长度。
- FlowLayoutPanel。缺点:暂时没发现。优点:可以精确控制label的位置、长度;换行自动完成,无需人工干预。
参考资料:
http://www.cppblog.com/baby-fly/archive/2010/03/15/109741.html