Мне нужно что-то в C#, который работает как setw() в C++
Я использую richTextBox в C#. Мне нужно отобразить строки различной длины внутри одного richTextBox, но эти строки должны быть идеально выровнены.. это пример..
abcd abcde abcde
ab abc abcdef
Я знаю, как сделать это в C++ с помощью функции setw.. но я не смог найти эквивалент в C#.
2 ответа
Решение
Вы могли бы сделать использование String.PadRight
innerString.PadRight(10);
string varName=String.Format("{0,10:D}", 2);
Это отформатирует число 2 как строку шириной 10, выровненную вправо, используйте -5, чтобы выровнять ее влево в ширину 5...
Источник: http://answers.yahoo.com/question/index?qid=20100727164827AAqJ1Hn
Я создал функцию для этой цели:
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));