DataGridView新增行消失

3
在我的DataGridView中,我点击新行,然后新的空行出现在底部,这是标准行为,没有问题。所以我填写了该行并单击最后一个空行,这里就出现了问题,我刚刚填写的行消失了。DataGridView中的单元格类型不同,有文本框、DataGridViewComboBox、日期和整数。我捕获了DataError事件,但没有错误消息。
这是我设置数据源的方式:DataGridView.DataSource=dataTable; 我找不到发生这种情况的原因。我发现其中一个原因可能是输入的数据无效,但我认为这不应该是我的情况,但也许我错了。

我刚刚自己解决了这个问题,希望能帮助到其他人,因为我没有找到太多相关的参考资料。最终问题确实是由于新行中输入的数据有问题。它们被正确输入,所以没有出现错误消息,但是有一些列缺失,这就是新输入行消失的原因。因此,我使用了DefaultValuesNeeded事件,输入了所有13列,现在它按预期工作了,我只需要调整哪些列由用户输入,哪些列由代码输入。最好的问候 - pesaak
2
应该将这个作为答案添加! - tzup
我无法将我的问题标记为答案... - pesaak
显然不是 :) ...但你可以编写一个答案回答你的问题,并将其标记为被接受的答案。 (+ 当获得投票支持时,您会获得更多“声望”) - tzup
1个回答

4

我刚刚解决了这个问题,希望我的解决方法能帮助到其他人,因为我没有找到很多相关的参考资料。

最终问题是由于新行输入的数据有误导致的。虽然它们被正确输入,所以没有出现错误信息,但是一些列缺失(我指的是用户看不到的列),这就是新输入行消失的原因。因此,我使用了事件DefaultValuesNeeded,输入了所有13列,现在它按照预期工作了,我只需要调整哪些列由用户输入,哪些列由代码输入。

最好的问候


谢谢提示 - 这里有一个小提示,告诉你在函数体中输入什么,例如:e.Row.Cells["Region"].Value = "WA"; 参考 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.defaultvaluesneeded.aspx - acme
非常感谢您发布这个解决方案。我刚刚遇到了这个问题,无法弄清楚为什么我的新行会消失,因为它以前是有效的。问题在于我添加了一列,并没有处理新列的New value needed。索引也发生了变化,我必须使它们正确。 - Tim Schmelter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接