编辑datagridview单元格时初始设置行高

编辑datagridview单元格时初始设置行高,datagridview,Datagridview,我正在使用VS2012和.NET4。我有一个datagridview控件,它有3列,第2列(最后一列)是可编辑的。我有一套编辑手册。我已将特定列的Multiline设置为true。我已将栅格AutoSizeRowsMode设置为AllCells。上面所说的几乎是我所需要的一切。但是,我想调整包含我正在编辑的单元格的行高,以便可以看到多行文本。高度应在我开始编辑时进行初始设置,并且不必在输入更多数据时进行更改。如果我正确理解了您的问题,您希望调整行高以允许第二行数据,但仅当您开始编辑单元格时 如果

我正在使用VS2012和.NET4。我有一个datagridview控件,它有3列,第2列(最后一列)是可编辑的。我有一套编辑手册。我已将特定列的Multiline设置为true。我已将栅格AutoSizeRowsMode设置为AllCells。上面所说的几乎是我所需要的一切。但是,我想调整包含我正在编辑的单元格的行高,以便可以看到多行文本。高度应在我开始编辑时进行初始设置,并且不必在输入更多数据时进行更改。

如果我正确理解了您的问题,您希望调整行高以允许第二行数据,但仅当您开始编辑单元格时

如果是这种情况,请尝试将这是您的CellBeginEdit事件:

if (dataGridView1.SelectedCells.Count == 1)
            dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Height = NewHeight;
这首先检查以确保您只在一个单元格中(出于异常原因),然后获取正在编辑的选定单元格并增加高度


这是您想要的,但最好调整datagridview以将enter键作为换行符处理。然后,datagridview应该调整其行大小,以适应给定当前设置的数据

我认为你的建议很好,但对我不起作用。我在调试器中浏览了代码,试图更改height值的尝试被拒绝。它看起来几乎像一个只读属性。我相信我的一个网格设置阻止了这一点。最有可能是autoSizeRowsMode。是的,它是autoSizeRowsMode。但是我需要这个集合,以便根据用户以前输入的数据正确调整行的大小。顺便说一句,我确实正确地处理了回车键。我得到的是一个CR字符,而不是将光标移动到下一行的默认字符。我现在有点不明白您要做什么,但也许您应该尝试解析输入到单元格中的字符串,并通过编程在X个字符后的第一个空格插入一个换行符。据我所知,扩展一行以允许多行文本的唯一方法是使用换行符。好吧,仍然没有按照我想要的方式工作,我想我只能通过编程方式来回操作autoSizeRowsMode。我很擅长输入键功能。这不是我正在努力解决的问题。当我按回车键时,我得到了一条我想要的新行。