自定义Label行间距

简介:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace Record
{
public partial class myLabel : System.Windows.Forms.Label
{
int lineDistance = 5;//行间距

public int LineDistance
{
get { return lineDistance; }
set { lineDistance = value; }
}
public myLabel()
{
InitializeComponent();
}

public myLabel(IContainer container)
{
container.Add(this);
InitializeComponent();
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
try
{
Graphics g = e.Graphics;
String drawString = this.Text;
Font drawFont = this.Font;
SolidBrush drawBrush = new SolidBrush(this.ForeColor);
SizeF textSize = g.MeasureString(this.Text, this.Font);//文本的矩形区域大小
int lineCount = Convert.ToInt16(textSize.Width / this.Width) + 1;//计算行数

this.Height = Convert.ToInt16((textSize.Height + lineDistance) * lineCount);//计算调整后的高度
this.AutoSize = false;
float x = 0.0F;
StringFormat drawFormat = new StringFormat();
int step = 1;
lineCount = drawString.Length;//行数不超过总字符数目
for (int i = 0; i < lineCount; i++)
{
//计算每行容纳的字符数目
int charCount;
for (charCount = 0; charCount < drawString.Length; charCount++)
{
string subN = drawString.Substring(0, charCount);
string subN1 = drawString.Substring(0, charCount + 1);
if (g.MeasureString(subN, this.Font).Width <= this.Width
&& g.MeasureString(subN1, this.Font).Width > this.Width)
{
step = charCount;
break;
}
}
string subStr;
if (charCount == drawString.Length)//最后一行文本
{
subStr = drawString;
e.Graphics.DrawString(subStr, drawFont, drawBrush, x, Convert.ToInt16(textSize.Height * i) + i * LineDistance, drawFormat);
break;
}
else
{
subStr = drawString.Substring(0, step);//当前行文本
drawString = drawString.Substring(step);//剩余文本
e.Graphics.DrawString(subStr, drawFont, drawBrush, x, Convert.ToInt16(textSize.Height * i) + i * LineDistance, drawFormat);
}
}
}
catch
{ }
}
}
}




本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/12/18/1626997.html,如需转载请自行联系原作者

相关文章
|
3月前
|
前端开发
el-form-item label中的字体样式设置格式
这篇文章介绍了如何在Element UI的`el-form-item`组件中自定义`label`标签的样式,通过使用`slot`属性和内联CSS来改变字体颜色和加粗显示。
el-form-item label中的字体样式设置格式
|
6月前
label控件
label控件
47 1
|
12月前
|
前端开发
设置输入框placeholder默认文字颜色
设置输入框placeholder默认文字颜色
281 0
|
定位技术
百度地图开发:Label文本居中
百度地图开发:Label文本居中
228 0
百度地图开发:Label文本居中
|
Web App开发 前端开发 开发者
1 分钟认识新属性 accent-color —— 修改 input 默认控件颜色
1 分钟认识新属性 accent-color —— 修改 input 默认控件颜色
|
Web App开发 前端开发
去掉谷歌默认的input textarea边框样式
谷歌浏览器Chrome基于WebKit开源浏览器引擎,自然能够通过相关的一切方法自定义设置浏览器的默认状态。谷歌浏览器Chrome安装之后,大家应该都留意到所有的表单都会添加黄色边框特效。在某些时候这些特效还是很不错的,但是当网站本身就已经对于表单样式有一定的设计时,这种默认表单样式就会让人觉得套样了!
156 0
控制label标签的宽度,不让它换行 label标签左对齐
控制label标签的宽度,不让它换行 label标签左对齐
|
前端开发
表单label里的文字默认是靠下的,如何靠上对齐?
0df3d7ca7bcb0a468694703e6a63f6246b60af07.jpg 给文本域加一个vertical-align:top;的CSS样式就行了,像这样: 文本域
1615 0
fbh
|
Web App开发
input 属性placeholder 默认值颜色修改
input::-webkit-input-placeholder { /* WebKit browsers */ color: #fff; } input:-moz-placeholder { /* Mozilla...
fbh
1206 0