可设置行距的Label

  最近在做Winform的项目,发现Winform和WebForm里相同名称的控件还是真是有区别。比如Label,它的大小Size有两种模式,自动大小(只有一行,宽度根据内容调整),还有一种是自定义宽和高。自定义的内容不同的话,宽和高还真能调节,调整不正确的话,可能有的内容就不能显示。还有就是换行的行距也不能设置,一切都是默认值,如果是B/S模式就太简单了。

  网上找了下个例子(百度就可以找到).以下是那位仁兄的:

 
 

 发现上面的控件存在两个问题:

   1、控件的最终高度是窗体Paint的时候计算出来。控件运行时前期的高度会保持控件设计时的高度。只Paint以后高度才会重新计算。

   2、效率。在计算行字数时这里应用的循环算法效率不高。而且外循环是drawstring.Length,即文本的数量。虽然这里会提前结束循环。但内循环仍然效率不高。

   以下是我针对上述问题做的改进。如下代码:


 当然这里改动下,设置段落高度。有兴趣可以改下。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值