Csharp/C#教程:以编程方式使新行变脏并在DataGridView中插入新行分享


以编程方式使新行变脏并在DataGridView中插入新行

我有一个可编辑的无界数据网格视图。 我正在以编程方式更改新行的值。

通常,当用户键入新行的任何字段时,它会变脏并在其下方插入另一个新行。

但在我的情况下,当用户进入新行的任何字段时,我正在捕获function键并以编程方式更改单元格值。

myGrid.CurrentCell.Value =“xyz”;

并且它不会在它下面插入新行。

现在作为一个解决方法我在CellValueChanged事件处理程序上尝试了这个。

if (myGrid.NewRowIndex == e.RowIndex) { myGrid.Rows.Insert(e.RowIndex + 1, 1); } 

但它会抛出错误,说明No row can be inserted after the uncommitted new row.

我怎么能告诉myGrid我的当前行(这是一个新行)是脏的,之后需要一个新行?

我正在使用winforms DataGridView。 在我的情况下,我尝试了@iSid解决方案,但这里有一个帮助,我试过这个

 myGrid.NotifyCurrentCellDirty(true); myGrid.NotifyCurrentCellDirty(false); 

通过仅使当前单元变脏而不工作,您还必须提交该单元。 在下一个命令中,我标记当前单元格不脏,这将​​强制datagridview添加脏行。 它正在我的项目中工作。

在这里我得到了解决方案

 myGrid.NotifyCurrentCellDirty(true); 

我想(我不确定),你试图在New Row 之后插入一行……这是不可能的。 将代码更改为此

 myGrid.Rows.Insert(e.RowIndex - 1, 1); 

应该在New Row 之前插入行,这应该可行。

考虑到问题的时间范围,这真的很晚,但接受的答案对我不起作用。 最后为我解决的是首先在脏行上方插入一行,然后编辑“干净”行。

上述就是C#学习教程:以编程方式使新行变脏并在DataGridView中插入新行分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 if (e.RowIndex == myGrid.Rows.Count - 1) { myGrid.Rows.Add(); } myGrid[e.ColumnIndex, e.RowIndex].Value = etd.ResultText; // Edit at your leisure. 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1029072.html

(0)
上一篇 2022年1月12日
下一篇 2022年1月12日

精彩推荐