2016-10-01 71 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')或者所有字符寬度相同的字體,包括空格。