首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空格有宽度吗?

空格有宽度吗?
EN

Stack Overflow用户
提问于 2012-08-14 23:42:27
回答 1查看 454关注 0票数 1

当涉及到空格时,我实在是太困惑了。我正试着把一根线补齐,但它不会配合我。

我想打印一个datagridview,所以我有列标题,在它下面是实际的行。无论我如何尝试确定填充字符串的确切长度或宽度,它要么太短,要么太长。因此,在发送到打印机之前,我无法将值与列标题对齐。

例如,如果我只执行以下操作:

代码语言:javascript
复制
thestring := '.NET is cool';
thestring := thestring.padright(100); //thestring = too short = '.NET is cool    '

如果我这样做:

代码语言:javascript
复制
var tmpstr := '=';
tmpstr := tmpstr.PadRight(15); //total length of characters is 15
var swidth := int32(ev.Graphics.Measurestring(tmpstr,new Font('Arial',9)).Width);

thestring := '.NET is cool';
thestring := theString.padright(swidth); //thestring = too long = '.NET is cool   

                '

当你传入实际的字符而不是空格时,PadRight或PadLeft似乎工作正常,但我可能错了。

我们将非常感谢您的任何意见或帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-15 00:03:15

使用比例字体时,每个字符宽度之间存在差异。Arial是一种比例字体,就像我们通常使用的大多数字体一样。

Wikipedia: Typeface

比例字体包含不同宽度的字形,而等宽(非比例或固定宽度)字体对字体中的所有字形使用单一标准宽度。

这意味着每个字母都可能是不同的with。空格有宽度,但不必与字母"i“或字母"w”相同。

实际上有两种选择:

你可以使用像

  1. 这样的等宽字体。这将允许您使用空格根据字母计数来对齐字符。
  2. 使用像素对齐。在这种情况下,您需要测量文本宽度并移动text out命令的起始位置,以便项目在彼此下方对齐。实际上,您需要计算所需的空格,然后移动到该位置,而不是填充字符串。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11955991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档