Проблема с заполнением строк
Вопрос
Используя приведенный ниже код, заполнение, похоже, воспроизводится не так, как должно, теоретически текст "ДОБАВИТЬ этот текст" должно начинаться со столбца 21 в обеих строках, но в str2 в нем есть несколько дополнительных пробелов.При проверке длины обеих строк длина оказалась такой же 20, как и ожидалось.
string str1 = "Test".PadRight(20);
string str2 = "Test123".PadRight(20);
string common = "Add this text";
MessageBox.Show(str1.Length.ToString());
MessageBox.Show(str2.Length.ToString());
MessageBox.Show(str1 + common + "\n" + str2 + common);
Кто-нибудь сталкивался с этой проблемой раньше?Есть ли что-то очевидное, чего мне не хватает?
Большое спасибо.
Решение
Может быть, в вашем окне сообщений отображается шрифт с переменной высотой тона?
Попробуйте установить шрифт на Courier New
(в любом соответствующем элементе управления), и посмотрите, поможет ли это.
Другие советы
Измените свой код на:
string str1 = "Test".PadRight(20, 'W');
string str2 = "Test123".PadRight(20, 'I');
string common = "Add this text";
MessageBox.Show(str1.Length.ToString());
MessageBox.Show(str2.Length.ToString());
MessageBox.Show(str1 + common + "\n" + str2 + common);
Таким образом, вы увидите, правильно ли набрано нужное количество символов, и вы также сможете определить, является ли это проблемой с шириной шрифта, как заявляли другие.