2009-04-18 4 views
0

Mit dem unten angegebenen Code scheint das Padding nicht so zu spielen, wie es sollte, der Text "ADD this text" sollte von Spalte 21 in beiden Strings beginnen, aber in str2 hat es a einige zusätzliche Räume. Bei der Überprüfung der Länge der beiden Strings ergab sich die gleiche Länge wie erwartet.
String Padding Problem

 string str1 = "Test".PadRight(20); 
     string str2 = "Test123".PadRight(20); 

     string common = "Add this text"; 

     MessageBox.Show(str1.Length.ToString()); 
     MessageBox.Show(str2.Length.ToString()); 

     MessageBox.Show(str1 + common + "\n" + str2 + common); 


Jeder begegnet diesem Problem vor? Gibt es etwas Offensichtliches, das mir fehlt?

Vielen Dank.

Antwort

4

Vielleicht zeigt Ihre MessageBox Schriftart mit variabler Schrittweite?

Versuchen Sie, die Schriftart auf Courier New (in jeder relevanten Kontrolle), und sehen, ob es hilft.

+0

Das Gleiche passiert in einem TextBox, TextBlock usw. –

+1

Verwenden Sie feste Schrift (monospaced) in der TextBox, TextBlock, ... etc – Aziz

0

Ihren Code ändern:

string str1 = "Test".PadRight(20, 'W'); 
    string str2 = "Test123".PadRight(20, 'I'); 
    string common = "Add this text"; 
    MessageBox.Show(str1.Length.ToString()); 
    MessageBox.Show(str2.Length.ToString()); 
    MessageBox.Show(str1 + common + "\n" + str2 + common); 

diese Weise können Sie, wenn die richtige Anzahl von Zeichen sehen richtig aufgefüllt werden, und Sie werden in der Lage zu sagen, auch wenn es sich um eine Schriftbreite Problem ist, wie andere gesagt haben .