首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

怎么获取一个字符串的宽度

2012-04-19 
如何获取一个字符串的宽度给定一个字符串 string a 一二三 /dff5 4-,. 求a的宽度,不是长度或其它

如何获取一个字符串的宽度
给定一个字符串 string a = "一二三 /dff5 4-,. < >";
求a的宽度,不是长度或其它什么的...

[解决办法]
宽度取决于编码。对于unicode编码,每个字符不管是什么都是占用4字节。对于utf-8,占用2字节,对于ascii(或者ascii+gb混合编码),英文1个字节,中文2个字节。

所以光给出字符串字面内容,问占用多少空间是不好确定的。你用GetBytes根据不同编码会得到不同长度的字节数组。

对于字面长度,用string.Length获得。
[解决办法]
你这个宽度是在显示在屏幕上的宽度吗,这个跟你的分辨率有关
[解决办法]
这种
string str;
str = @"一二三 /dff5 4-,. < >";
Font f = new Font( "宋体 ", 12); //字体不同,测量的宽度不同 
Graphics g = this.CreateGraphics();
SizeF siF = g.MeasureString(str, f);
MessageBox.Show(siF.Width);
MessageBox.Show(siF.Height);
[解决办法]
CSize GetTextExtent( const CString& str ) const;
返回字符串的宽度和高度

热点排行