Мне нужно что-то в C #, который работает как setw () в C ++ - PullRequest
3 голосов
/ 12 марта 2012

Я использую richTextBox в c #. Мне нужно отобразить строки различной длины внутри одного richTextBox, но эти строки должны быть идеально выровнены .. это пример ..

abcd   abcde  abcde
ab     abc    abcdef

Я знаю, как сделать это в c ++, используя функцию setw ... но я не смог найти эквивалент в c #.

Ответы [ 3 ]

11 голосов
/ 12 марта 2012
string varName=String.Format("{0,10:D}", 2);

Это отформатирует число 2 как строку шириной 10, выровненную по правому краю, используйте -5, чтобы выровнять его по левому краю в ширину 5 ...

Источник: http://answers.yahoo.com/question/index?qid=20100727164827AAqJ1Hn

5 голосов
/ 12 марта 2012

Вы можете использовать String.PadRight

innerString.PadRight(10);
0 голосов
/ 30 мая 2019

Я создал функцию для этой цели:

public string tab(string s, int w)
{
    //w is the desired width
    int stringwidth = s.Length;
    int i;
    string resultstring = s;

    for(i=0;i<=(w-stringwidth)/8;i++)
    {
        resultstring = resultstring + "\t";
    }
    return resultstring;
 }

Затем, добавив его в ListBox, например:

listBox.Items.Add(tab("MyFullNameHere",30)+ tab("MyContact - xxxxx",12));
listBox.Items.Add(tab("MyWifeFullNameHereVeryLong", 30) + tab("HerContact - xxxxx", 12));
...