对于空白,我太困惑了。我想填充一个字符串,它不会与我合作。白色空间是否有宽度?
我想打印一个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看来,当你在实际的字符不是空格传递正常工作,但我可能是错的。
任何输入或帮助将不胜感激。
不会使用单元格对齐会更好吗?当使用像Arial这样的可变宽度字体时,它永远不会看起来很正确。如果你解释你想要完成的事情,这可能会有所帮助。可能有更好的方法去做。 – LarsTech 2012-08-14 15:56:44
@LarsTech我想打印datagridview表,我正在使用PrintDocument来做到这一点。它的工作原理除了我无法对齐文本和列标题。 – ThN 2012-08-14 16:01:55
'打印一个datagridview' - 错过了那一行。然后您可能需要添加一些打印代码。我会尝试将每列转换为打印页上的矩形,然后将对齐格式应用于DrawString函数。 – LarsTech 2012-08-14 16:09:43