52

如何让“ DataGridViewTextBoxColumn”中DataGridView 支持多行属性

4

5 回答 5

74

您应该能够通过将 的 设置为 来实现WrapMode这一点。DefaultCellStyleDataGridViewTextBoxColumntrue

于 2009-10-13T12:26:08.267 回答
31

我发现在设计器中需要做两件事,以使文本单元格显示多行。正如Tim S. Van Haren提到的,你需要设置你WrapMode的to 。尽管这确实使文本换行,但它不会使行扩展以显示第一行以外的任何内容。除了,的必须设置为适当的枚举值。诸如允许单元格垂直扩展并显示整个换行文本的值。DefaultCellStyleDataGridViewTextBoxColumntrueWrapModeAutoSizeRowsModeDataGridViewDataGridViewAutoSizeRowsModeDataGridViewAutoSizeRowsMode.AllCells

于 2011-08-22T20:50:22.573 回答
5

除了设置之外WrapModeDefaultCellStyle您还可以执行以下操作:

  1. 你需要捕捉 GridView 的EditingControlShowing事件
  2. 将EventArgsControl上的属性转换为您想要的类型(即文本框、复选框或按钮)
  3. 使用该转换类型,更改Multiline属性,如下所示:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    TextBox TB = (TextBox)e.Control;
    TB.Multiline = true;            
}
于 2010-01-21T06:41:44.030 回答
0

如果您只想为您的一列设置 Multiline 属性,DataGridView 您可以这样做

dataGridView.Columns[0].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
于 2021-02-28T19:17:39.280 回答
0
    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;
    }
于 2018-06-26T06:48:16.977 回答