可设置行距的Label

来源:互联网 发布:禾川plc编程软件下载 编辑:程序博客网 时间:2024/04/30 15:25

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

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

 
 

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

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

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

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


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

原创粉丝点击