Я пытаюсь реализовать DataGridView, который имеет меньшую ширину ячейки, чем autosize. Если вы посмотрите очень близко на авторизованную ячейку, вы заметите, что все еще есть пространство, которое не используется для фактического отображения содержимого ячейки.DataGridView - запретить всю перенос слов
Именно поэтому я начал измерять ширину содержимого самостоятельно через TextRenderer
, а затем вручную задал ширину столбца.
Первоначальная проблема заключалась в том, что «A» отображалось как «A ...» задолго до того, как ячейка была фактически «заполнена». Причиной этого было cell.Style.WrapMode
, установленное на «nonSet». Я был очень рад, что DataGridViewTriState.True
действительно работал для этого «A» -пример.
Но теперь я заметил, что если в строке есть несколько слов («A, B»), DataGridView пытается отобразить контент на несколько строк задолго до того, как ячейка будет фактически «заполнена».
То, что я сейчас ищу, - это либо способ удалить это «заполнение» содержимого ячейки, либо полностью подавить перенос слов на определенную ячейку/столбец (= одна строка без обрезания строки).
Кроме того, я должен признать, что на этих строках нет скрытых пробелов, поэтому отделка не имеет никакого эффекта.
Редактировать: Я случайно наткнулся на код некоторых коллег, который, кажется, делает то, что я ищу.
StringFormat format = new StringFormat(StringFormatFlags.NoClip);
В документации сказано, что строки имеют некоторый прямоугольник вокруг них, что больше, чем сама строка. Если прямоугольник выпадает из области записи, строка обертывается. Этот фрагмент кода подавляет поведение (по умолчанию).
Единственная проблема заключается в том, что это решение работает только для рисования строк. Я не нашел возможности назначить объект stringformat для строки.
Я хочу, чтобы содержимое отображалось в одной строке. Поэтому, к сожалению, автоматизация строк DataGridView не является вариантом. –