当涉及到空格时,我实在是太困惑了。我正试着把一根线补齐,但它不会配合我。
我想打印一个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似乎工作正常,但我可能错了。
我们将非常感谢您的任何意见或帮助。
发布于 2012-08-15 00:03:15
使用比例字体时,每个字符宽度之间存在差异。Arial是一种比例字体,就像我们通常使用的大多数字体一样。
比例字体包含不同宽度的字形,而等宽(非比例或固定宽度)字体对字体中的所有字形使用单一标准宽度。
这意味着每个字母都可能是不同的with。空格有宽度,但不必与字母"i“或字母"w”相同。
实际上有两种选择:
你可以使用像
https://stackoverflow.com/questions/11955991
复制相似问题