我对白色空间感到困惑。我正在尝试用绳子填充它,它不会与我合作。
我想打印一个datagridview,所以我有列标题,下面是实际的行。无论我如何确定填充弦的确切长度或宽度,它都太短或太长。因此,在发送到打印机之前,我无法将值与列标题对齐。
如果我只是执行以下操作:
thestring := '.NET is cool';
thestring := thestring.padright(100); //thestring = too short = '.NET is cool '
如果我这样做:
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似乎能正常工作,但我可能错了。
非常感谢任何输入或帮助。
答案 0 :(得分:1)
使用比例字体时,每个字符宽度之间存在差异。 Arial是一种比例字体,与我们通常使用的大多数字体一样。
比例字体包含不同宽度的字形,而a 等宽(非比例或固定宽度)字体使用单一字体 字体中所有字形的标准宽度。
这意味着每封信都可能与之不同。空格确实有宽度,但不一定与字母“i”或字母“w”相同。
实际上有两种选择: