Как разрешить "DataGridViewTextBoxColumn
" в DataGridView
поддерживать свойство Multiline?
Как сделать столбец текстового поля DataGridView многострочным?
Ответы (4)
Вы сможете добиться этого, установив WrapMode
из DefaultCellStyle
вашего DataGridViewTextBoxColumn
на true
.
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
см. этот пост
- person BornToCode; 09.07.2012
Я обнаружил, что вам нужно сделать две вещи в дизайнере, чтобы текстовая ячейка отображала несколько строк. Как упоминал Тим С. Ван Харен, вам необходимо установить WrapMode
из DefaultCellStyle
вашего DataGridViewTextBoxColumn
на true
. И хотя это действительно приводит к переносу текста, это не заставляет строку расширяться, чтобы показать что-либо за пределами первой строки. В дополнение к WrapMode
, AutoSizeRowsMode
DataGridView
должен быть установлен на соответствующее значение перечисления DataGridViewAutoSizeRowsMode
. Такое значение, как DataGridViewAutoSizeRowsMode.AllCells
, позволяет ячейке расширяться по вертикали и отображать весь обернутый текст.
AutoSizeRowsMode
является свойством DataGridView
, и для него необходимо установить что-то вроде DataGridViewAutoSizeRowsMode.AllCells
.
- person Rebecca Scott; 31.08.2011
DataGridViewAutoSizeRowsMode
значение перечисления. Я отредактирую ответ, чтобы отразить это.
- person Derek W; 19.01.2015
Помимо установки WrapMode
из DefaultCellStyle
, вы можете сделать следующее:
- Вам нужно поймать
EditingControlShowing
событие GridView - Приведите свойство
Control
в EventArgs к желаемому типу (например, текстовое поле, флажок или кнопка). - Используя этот приведенный тип, измените свойство
Multiline
, как показано ниже:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox TB = (TextBox)e.Control;
TB.Multiline = true;
}
Если вы хотите установить свойство Multiline только для одного столбца вашего DataGridView
, вы можете сделать
dataGridView.Columns[0].DefaultCellStyle.WrapMode = DataGridViewTriState.True;