Как установить в столбце DataGridView текстовое поле в несколько строк? - PullRequest
42 голосов
/ 13 октября 2009

Как включить "DataGridViewTextBoxColumn" в DataGridView , поддерживает свойство Multiline ?

Ответы [ 4 ]

65 голосов
/ 13 октября 2009

Этого можно добиться, установив WrapMode из DefaultCellStyle вашего DataGridViewTextBoxColumn на true.

29 голосов
/ 23 августа 2011

Я обнаружил, что нужно сделать две вещи, как в конструкторе, чтобы в текстовой ячейке отображалось несколько строк. Как упоминалось Тим С. Ван Харен , вам необходимо установить WrapMode из DefaultCellStyle вашего DataGridViewTextBoxColumn в true. И хотя это делает обтекание текстом, оно не расширяет строку, чтобы показать что-либо за пределами первой строки. В дополнение к WrapMode для AutoSizeRowsMode из DataGridView должно быть установлено соответствующее значение перечисления DataGridViewAutoSizeRowsMode. Такое значение, как DataGridViewAutoSizeRowsMode.AllCells позволяет ячейке расширяться по вертикали и отображать весь завернутый текст.

4 голосов
/ 21 января 2010

Помимо настройки WrapMode для DefaultCellStyle, вы можете сделать следующее:

  1. Вам нужно поймать GridView EditingControlShowing Событие
  2. Приведите Control свойство в EventArgs к нужному типу (т. Е. Текстовое поле, флажок или кнопка)
  3. Используя этот приведенный тип, измените свойство Multiline, как показано ниже:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    TextBox TB = (TextBox)e.Control;
    TB.Multiline = true;            
}
0 голосов
/ 26 июня 2018
    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;
    }
...