winform中实现label的自动换行

    本文适用于VS 2005/2008/2010,winform

 

    之前做某个项目的时候,需要实现winform中label文字的自动换行,当时查找了一些资料,找到2种方法:

    1. 把Label的Dock属性设置成Fill,并同时把Label的AutoSize属性设成False。
    2. 计算控件大小以适应文本。

    经过实际测试,效果不太好,使用也不方便,尤其是计算控件大小,费时费力不讨好。

 

    最近发现一个简单好用的方法:

    先添加一个FlowLayoutPanel控件,然后在FlowLayoutPanel中添加一个Label,Label使用默认属性,设置好FlowLayoutPanel的宽度,就能实现label的自动换行。

    截图看一下效果。下面是开发时的截图

design

    运行时的截图

run

 

 

    总结一下3种方法:

    1. 把Label的Dock属性设置成Fill,并同时把Label的AutoSize属性设成False。缺点:不能控制label的位置,不能控制label的长度。优点:换行自动完成。
    2. 计算控件大小以适应文本。缺点:这是一个非常有难度的技术活,计算很容易出错。优点:可以精确控制label的位置、长度。
    3. FlowLayoutPanel。缺点:暂时没发现。优点:可以精确控制label的位置、长度;换行自动完成,无需人工干预。

 

    参考资料:

http://www.cppblog.com/baby-fly/archive/2010/03/15/109741.html

http://blog.csdn.net/nyzhl/article/details/1670769

posted @ 2011-07-11 21:23  ols  阅读(6081)  评论(0编辑  收藏  举报