Формат строки не отображается должным образом в тексте метки - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь отформатировать список строк, чтобы отображать элементы в два столбца длиной 40 каждый. Для этого я использую следующую функцию:

Private Function GetNamesString(names As List(Of String)) As String
    Dim str As String = String.Empty
    For i = 0 To names.Count - 2 Step 2
        str += $"{names(i),-40}{names(i + 1),-40}"
        str += $"{vbCrLf}"
    Next
    Return str
End Function

Я создаю сообщение следующим образом:

Dim message As String = $"Removing master species {gbl.EditSpecies.Name} implies that next {names.Count} species must be also removed:{vbCrLf}{vbCrLf}"
message += GetNamesString(names)
message += $"{vbCrLf}{vbCrLf}Do you want to remove above species besides {gbl.EditSpecies.Name}?"

Получение следующей строки:

Removing master species Fe+3 implies that next 106 species must be also removed:

Beidellite_SBld-1(4.576H2O)             Ca2Fe2O5(s)                             
CaFe2O4(s)                              C4FH13                                  
C3FH6                                   Ettringite-Fe                           
Monosulfate-Fe                          Smectite_MX80(5.189H2O)                 
...

Наконец, я отображаю форму сообщения:

frmShowMessage.Show(message, "Remove species", enumMessageIcon.Warning, enumMessageButton.YesNo)

message отображается непосредственно в тексте метки: lblMessageText.Text = message (тип шрифта, используемый для текста метки - Arial).

Однако я получаю следующий результат:

enter image description here

Который не отображается в форматах столбцов, как я хочу. Знаете ли вы, почему я получаю неформатированную строку в форме сообщения?

Спасибо!

1 Ответ

0 голосов
/ 28 августа 2018

Как указал jmcilhinney в комментариях к вопросу, я использовал пропорциональный шрифт (например, тип шрифта Arial), который невозможно вписать прямо в одинаково расположенные столбцы.

Решение состоит в том, чтобы использовать моноширинный тип шрифта (например, Consolas):

enter image description here

...