Вопрос

Хорошо, я просто пытаюсь сделать mail.body часть моего smtp email sub выглядит мило.Пока у меня есть этот код:

With myStringBuilder
    .AppendLine("Golfer Name" & vbTab & vbTab & vbTab & vbTab & "Average Quota")
    .AppendLine(vbCrLf)

    For Each row As DataRow In golfersTable.Rows
       .Append(String.Format("{0,-10}{1,40}", row.Item("Golfer Name"), row.Item("Average Quota")))
    Next
End With

mail.Body = myStringBuilder.ToString

Я пытаюсь выровнять два столбца в теле, чтобы это выглядело красиво, пока вот результат:

Golfer Name                                          Average Quota


B                                                               20
J                                                              0
D                                                              28.375
C                                                               16.5

Есть идеи, как мне заставить их идеально совпадать друг с другом?у меня не было большой практики с String.Format() так что вполне возможно, что я испортил второй аргумент...Любая помощь очень ценится, спасибо!

Это было полезно?

Решение

Попробуйте это, я не проверял, но, надеюсь, это поможет вам двигаться в правильном направлении и извините за опечатки. VB.NET не является моим родным языком.

With myStringBuilder
    .AppendLine("Golfer Name" & vbTab & vbTab & vbTab & vbTab & "Average Quota")
    .AppendLine(vbCrLf)

    For Each row As DataRow In golfersTable.Rows
      .AppendFormat("{0,-10}{1}{1}{1}{1}{2:f3}", row["name"], vbTab, row["avgQuota"]).AppendLine()
    Next
End With

Это позволит выровнять данные по тому же интервалу, что и заголовки.Я использую C#, поэтому не был уверен, как табуляция представлена ​​внутри строки, поэтому я просто использую {1}, помещаю табуляцию 4 раза. Возможно, есть лучший способ сделать это, в C# я бы использовал " \ t ", но я не уверен, что это работает в VB.NET.

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