2016-10-01 70 views
0

我想打印收据将无法正常工作(不相等列)。我使用这种方法在标题和价格之间放置一个空格:String.PadRight似乎

private string getStringForList(string menu, string price, string title) 
    { 
     if (price != null) 
     { 
      decimal Prices = Convert.ToDecimal(price); 
      menu = menu.PadRight(33,' '); 
      return menu + Prices.ToString("c2"); 
     } 
     else 
     { 
      return menu.PadRight(46) + title; 
     } 
    } 

但它似乎并不像这样工作。我得到这个结果:

link to picture

我怎样才能在一个行打印的价格?

+0

你总是添加相同的填充不管菜单项有多大,所以它总是会出现脱节。 –

+0

只是一个想法,你有没有尝试过这样的事情,以确保PadRight工作正常? 'return menu +“test”;'只是好奇我们是否可能从decimal.tostring转换中得到一些未知的空格。 – ejsd1989

+0

我也试过totalWidth - menu.Length –

回答

1

我检查,填充加起来33所以这个问题必须是字体的空格必须比其它文本更窄。也许你可以尝试使用制表符跳转('\ t')或者所有字符宽度相同的字体,包括空格。