Мне нужно что-то в C #, которое работает как SetW () в C ++

StackOverflow https://stackoverflow.com//questions/9673412

  •  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));
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top