У меня есть текстовое поле в формах Windows с моноширинным шрифтом (Courier New, 10pt), поэтому я предполагаю, что каждая строка текстового поля будет содержать одинаковое количество символов. Однако иногда первая строка содержит на один символ больше, чем все остальные.
Вот как текстовое поле форматируется для строки textbox.Text = "?06?00?00?00?01?00?00?00?00?00?01?00?00?04?00?00?00?00?00?00?01?00?00?00?00?00?00?00?02?00?00?00?"
:
?06?00?00?00?01?00?00?00?
00?00?01?00?00?04?00?00?
00?00?00?00?01?00?00?00?
00?00?00?00?02?00?00?00?
То же текстовое поле выглядит так для другой строки textbox.Text = "06 00 00 00 01 00 00 00 00 00 01 00 00 04 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 f4 01 00 00 "
:
06 00 00 00 01 00 00 00 00
00 01 00 00 04 00 00 00 00
00 00 01 00 00 00 00 00 00
00 02 00 00 00 f4 01 00 00
Обратите внимание, что для первой строки текстовое поле содержит 25 символов в первой строке и 24 в остальных. Для второй строки текстовое поле содержит 26 символов в каждой строке (в конце каждой строки есть пробел)
Действительно ли Courier New является моноширинным шрифтом? (Я читал в нескольких местах, что это так.)
Если Courier New — моноширинный шрифт, то почему это происходит?
Как это можно исправить? (Я просто хочу иметь одинаковое количество символов в каждой строке).
Graphics.MeasureString
, чтобы выяснить, как долго строка использует графику, связанную с текстовым полем, а затем нарежьте строку самостоятельно, чтобы исправить ее. Вам нужно будет обработать событие изменения размера, чтобы повторить измельчение, если текстовое поле изменит ширину - person Flydog57   schedule 30.11.2020