2011-06-23 19 views
1

値を揃えようとしています。私はなぜこれが起こるのだろうか。:文字列の書式設定と印刷

 string value = ""; 

     value += string.Format("{0,-10}", "value"); 
     value += string.Format("{0,5}", "value"); 

     value += Environment.NewLine; 

     value += string.Format("{0,-8}", "val"); 
     value += string.Format("{0,7}", "value"); 

     Print(value); 

私は "印刷"する前に値をチェックすると正しいです。彼らはあるべきな

value  value 
val  value 

が、私は私のプリンタに「値」を印刷するとき、彼らはこのように取得:結果が、それはときに私の文字列を変更する理由

value  value 
    val  value 

私は本当に理解カントテキストを印刷しますか?

"\ t"を使用しようとしましたが、タブが印刷されないため、プリンタが "\ t"を理解していないようです。

Btw:これは単なるテストコードなので、実際のコードで問題があることを理解できます。

+0

固定幅フォントで印刷していますか? –

答えて

2

コンソールではプリンタが使用しない固定幅フォントが使用されます(少なくともデフォルトでは)。したがって、スペースはプリンタのスペースを占有せず、文字は実際の幅に基づいて多少のスペースを占めます。

2

これは、異なる文字幅を使用するフォントによって発生する可能性があります。固定幅でないフォントでは、スペースは文字や数字よりも狭いことが多いため、スペースがないように見えることがあります。 Lucida Consoleまたは別の固定幅フォントの使用を検討してください。

+0

プリンタでフォントを変更する必要があるのですか? – syncis

+0

@ syncisが動作する可能性があります。印刷方法によって異なります。あなたはFlowDocumentのようなものを使っていますか?その場合は、文書のフォントを変更します。 –

関連する問題