2009-10-13 23 views

Respuesta

60

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

+14

también necesita establecer 'dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;' ver [esta publicación] (http://stackoverflow.com/questions/1706454/c-multiline-text-in-datagridview-control) – BornToCode

+0

Recuerde que si usa estilos de celda personalizados en su tabla, deberá especificar el WrapMode para cada uno que desee envolver, ya que los nuevos estilos predeterminados son falsos. – kjhf

3

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

  1. necesita ponerse al día de GridView EditingControlShowing Evento
  2. Cast Control propiedad sobre los EventArgs que el tipo que desee (es decir, cuadro de texto, casilla o un botón)
  3. el uso de ese tipo fundido, cambie la propiedad Multiline, como a continuación:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
{ 
    TextBox TB = (TextBox)e.Control; 
    TB.Multiline = true;    
} 
26

He descubierto que hay dos cosas que debe hacer, tanto en el diseñador, para hacer que una celda de texto muestre varias líneas. Como Tim S. Van Haren mencionado, necesita 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, el AutoSizeRowsMode del DataGridView se debe establecer 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.

+4

Como referencia, 'AutoSizeRowsMode' es una propiedad de' DataGridView', y necesita establecerse en algo como 'DataGridViewAutoSizeRowsMode.AllCells' –

+0

Como @BenScott ha establecido, [' DataGridView.AutoSizeRowsMode'] (http: // msdn. microsoft.com/en-us/library/system.windows.forms.datagridview.autosizerowsmode%28v=vs.110%29.aspx) no es un valor booleano y debe tener asignado el valor de enumeración 'DataGridViewAutoSizeRowsMode' apropiado. Editaré la respuesta para reflejar esto. –

Cuestiones relacionadas