根据宽度来决定显示的字符串长度(C#)

本文介绍了一种在C#中根据Label控件宽度自动截断过长字符串的方法,并使用了Graphics.MeasureString来测量字符串的实际宽度,确保显示部分始终适应Label的可用空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据宽度来决定显示的字符串长度 (C#,VS2005)

如果 lable长度固定但字符串长度可变,如果超过了lable显示的长度时,希望用 ...代替剩下的字符,这时需要一个函数
Graphics.MeasureString
具体代码如下

public string Abbreviation(string str)
{
if (str == null)
{
return null;
}
int strWidth = FontWidth(txtName.Font, txtName, str);
//获取label最长可以显示多少字符
int len = label.Width * str.Length / strWidth;
if (len > 3 && len < str.Length)
{
return str.Substring(0, len - 3) + "...";
}
else
{
return str;
}
}

/// <summary>
/// 获取字符串在 font时的长度
/// </summary>
private int FontWidth(Font font, Control control, string str)
{
using (Graphics g = control.CreateGraphics())
{
SizeF siF = g.MeasureString(str, font);
return (int)siF.Width;
}
}

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/laorer/archive/2010/01/07/5148510.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值