Мне нужно что-то в C #, которое работает как SetW () в C ++
-
12-12-2019 - |
Вопрос
Я использую RichTextBox в C #.Мне нужно отображать строки разной длины внутри одного RichtextBox, но эти строки должны быть идеально выровнены .. Это пример ..
abcd abcde abcde
ab abc abcdef
.
Я знаю, как это сделать в C ++, используя функцию SETW .. Но я не мог найти эквивалент в C #.
Решение
Вы могли бы использовать 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.Items.Add(tab("MyFullNameHere",30)+ tab("MyContact - xxxxx",12));
listBox.Items.Add(tab("MyWifeFullNameHereVeryLong", 30) + tab("HerContact - xxxxx", 12));
. Не связан с StackOverflow