#c# #listbox #windows-forms-designer #text-alignment
#c# #listbox #windows-forms-designer #выравнивание текста
Вопрос:
Итак, я пытаюсь отформатировать вывод списка. По сути, я хочу, чтобы название элемента было выровнено по левому краю, а стоимость элемента выровнена по правому краю. Вот мой метод toString(), который я использую:
public override string ToString() {
return String.Format("{0, -20}{1, 10:C2}", name, cost);
}
Тогда вот изображение того, что делает результирующий результат:
Я упускаю что-то простое здесь? Из всего, что я прочитал, это должно правильно отформатировать мой вывод. Я прочитал кое-что об использовании ListView вместо этого, однако для назначения я должен использовать ListBox. Любая помощь будет оценена!
Комментарии:
1. Вам нужно использовать шрифт фиксированной ширины или найти сторонний элемент управления, который поддерживает выравнивание по правому краю.
2. Измените шрифт списка. Используйте шрифт с фиксированной шириной (он же моноширинный шрифт)
3. Кажется, вам следует использовать моноширинный (фиксированный шаг, фиксированная ширина, непропорциональный) шрифт, например
Courier
,Courier New
,Lucida Console
,Monaco
4. Да, это было так! даже не думал о том, что шрифт является проблемой.
Ответ №1:
Вам просто нужно установить шрифт элемента управления на что-то с фиксированной шириной.
listBox1.Font = new Font(FontFamily.GenericMonospace, 10);
listBox1.Font = new Font("courier", 10);
Комментарии:
1. Вау, большое спасибо! Я подумал, что это что-то простое, но, похоже, я нигде не мог найти эту информацию.