¿Cómo establecer la columna del cuadro de texto DataGridView en varias líneas?

¿Cómo se permite que ” DataGridViewTextBoxColumn ” en DataGridView compatible con la propiedad Multiline ?

Debería poder lograr esto estableciendo el WrapMode del DefaultCellStyle de su DataGridViewTextBoxColumn en true .

He descubierto que hay dos cosas que debe hacer, tanto en el diseñador, para que una celda de texto muestre varias líneas. Como mencionó Tim S. Van Haren , debe establecer WrapMode del DefaultCellStyle de su DataGridViewTextBoxColumn en true . Y aunque eso hace que el texto se ajuste, no hace que la fila se expanda para mostrar nada más allá de la primera línea. Además de WrapMode , AutoSizeRowsMode de DataGridView debe establecerse en el valor de enumeración DataGridViewAutoSizeRowsMode apropiado. Un valor como DataGridViewAutoSizeRowsMode.AllCells permite que la celda se expanda verticalmente y muestre todo el texto envuelto.

Además de configurar WrapMode de DefaultCellStyle , puede hacer lo siguiente:

  1. Debes atrapar el evento EditingControlShowing de GridView
  2. Emitir propiedad Control en los EventArgs al tipo que desee (es decir, cuadro de texto, checkbox o botón)
  3. Usando ese tipo fundido, cambie la propiedad Multiline como se muestra a continuación:
 private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { TextBox TB = (TextBox)e.Control; TB.Multiline = true; } 
  int multilineht = 0; private void CustGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { multilineht = CustGridView.Rows[CustGridView.CurrentCell.RowIndex].Height; CustGridView.AutoResizeRow(CustGridView.CurrentCell.RowIndex, DataGridViewAutoSizeRowMode.AllCells); } private void CustGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { CustGridView.Rows[CustGridView.CurrentCell.RowIndex].Height = multilineht; }