2011-01-02 20 views
22

Witam mam problem mam ten wiersz kodu:Jak wykonać wyrównanie w ciągu znaków.Format C#?

return string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}", Name, CPSA, PostCode, Rank, Score1, Score2, Score3, Score4, Score5, Score6, Score7, Score8); 

Czerpie on dane z pliku tekstowego i jest wyświetlany w polu listy. chcę usprawiedliwiać połowę go w lewo, a druga połowa na prawo więc w świecie marzeń to:

return string.Format("align=left({0}, {1}, {2}, {3}, {4},) align=right ({5}, {6}, {7}, {8}, {9}, {10}, {11})", Name, CPSA, PostCode, Rank, Score1, Score2, Score3, Score4, Score5, Score6, Score7, Score8); 

Mam spojrzał wokół, ale nie mam pojęcia jak to zrobić, ja też jestem trochę codeing noob, więc proszę wyjaśnij. Kod C# Dzięki

+0

listbox ma swój własny pomysł, jak wyrównać tekst, string.Format() się nie liczy. Nie można odpowiedzieć na twoje pytanie, dopóki nie udokumentujesz, jakiego rodzaju używasz ListBox. –

+0

Wyrównany w lewo w związku z czym? Gdzie jest drukowany tekst? HTML, Silverlight, konsola lub WinFormy –

+0

Ogólnie każda postać ma inną szerokość, więc wyrównanie ze spacjami nie będzie działało, chyba że zmuszasz listbox do używania czcionki o stałej szerokości ... musisz tabelować dane i do tego potrzebowalibyśmy lepszego przykładu na to, co próbujesz osiągnąć. –

Odpowiedz

50

można zrobić coś takiego:

Console.WriteLine(String.Format("{0,-10} | {1,5}", "Bill", 51)); 

Dostaniesz "51" wyrównany do prawej na 5 znaków. Poniższe przykłady: Align String with Spaces.

do oficjalnego odniesienia wyglądać odpowiedź Composite Formatting

1

@Rubens farias jest poprawna, ale należy pamiętać, że String.Format sztuczka działa tylko jeśli używasz czcionki o stałej szerokości.

Na przykład w C# można użyć czcionki '', który jest Consolas Monospaced:

Font NewFont = new Font("Consolas", 8.25, FontStyle.Regular)