如何将DataGridView文本框列设置为多行?

Wah*_*tar 43 .net c# datagridview datagridviewcolumn

如何让" DataGridViewTextBoxColumn" DataGridView 支持Multiline属性

Tim*_*ren 68

您应该能够通过设置来实现这一目标WrapModeDefaultCellStyle您的DataGridViewTextBoxColumntrue.

  • 你还需要设置`dataGridView.AutoSizeRowsMo​​de = DataGridViewAutoSizeRowsMo​​de.AllCells;`参见[this post](http://stackoverflow.com/questions/1706454/c-multiline-text-in-datagridview-control) (16认同)

小智 29

我发现在设计器中有两件事你需要做,以使文本单元显示多行.作为添S.范·哈伦提到的,你需要设置WrapModeDefaultCellStyle你的DataGridViewTextBoxColumntrue.虽然这确实使文本换行,但它不会使行扩展以显示超出第一行的任何内容.此外WrapMode,该AutoSizeRowsModeDataGridView必须设置相应的DataGridViewAutoSizeRowsMode枚举值.诸如DataGridViewAutoSizeRowsMode.AllCells允许单元格垂直展开并显示整个包装文本的值.

  • 作为参考,`AutoSizeRowsMo​​de`是`DataGridView`的属性,需要设置为`DataGridViewAutoSizeRowsMo​​de.AllCells`之类的东西. (4认同)

小智 5

除了设置WrapModeDefaultCellStyle,你可以做到以下几点:

  1. 您需要捕获 GridView 的EditingControlShowing事件
  2. 铸造Control于EventArgs的到你想要的类型属性(即文本框,复选框或按钮)
  3. 使用该强制类型,更改如下Multiline属性:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    TextBox TB = (TextBox)e.Control;
    TB.Multiline = true;            
}
Run Code Online (Sandbox Code Playgroud)