【问题标题】:Set row height initially when editing a datagridview cell在编辑 datagridview 单元格时最初设置行高
【发布时间】:2013-07-16 16:42:42
【问题描述】:

我正在使用 VS 2012 和 .NET 4。我有一个 datagridview 控件,其中包含 3 列和第 2 列(最后一列)可编辑。我有 editOnEnter 设置。我将特定列的 Multiline 设置为 true。我将网格 AutoSizeRowsMo​​de 设置为 AllCells。以上给了我几乎所有我需要的东西。但是,我想调整包含我正在编辑的单元格的行高,以便我可以看到超过 1 行的文本。高度应该在我开始编辑时设置,并且在我键入更多数据时不必更改。

【问题讨论】:

    标签: datagridview


    【解决方案1】:

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

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

    if (dataGridView1.SelectedCells.Count == 1)
                dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Height = NewHeight;
    

    首先检查以确保您只在一个单元格中(出于例外原因),然后选取您正在编辑的选定单元格并增加高度。

    这可以满足您的需求,但最好调整您的 datagridview 以将输入键作为换行符处理。然后 datagridview 应该调整它的行大小以适应您当前设置的数据。

    【讨论】:

    • 我认为您的建议很好,但对我不起作用。我浏览了调试器中的代码,并拒绝了更改高度值的尝试。它几乎看起来像一个只读属性。我相信我的网格设置之一正在阻止这种情况。最有可能是 autoSizeRowsMo​​de。
    • 是的,它是 AutoSizeRowsMo​​de。但我需要这个设置,以便根据用户先前输入的数据正确调整行大小。顺便说一句,我确实正确处理了 ENTER 键。我得到一个 CR 字符而不是默认值,它将光标移动到下一行。
    • 我现在对您要做什么有点困惑,但也许您应该尝试解析在单元格中输入的字符串,并以编程方式在 X 个字符后的第一个空格处插入换行符。据我所知,扩展一行以允许多行文本的唯一方法是使用换行符。
    • 好吧,仍然没有按照我想要的方式工作,我想我只能以编程方式来回操作 autoSizeRowsMo​​de。
    • 我擅长输入键功能。这不是我正在努力的。当我按回车键时,我会按照我想要的方式换行。
    猜你喜欢
    • 1970-01-01
    • 2018-09-25
    • 2011-12-24
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多