DatagridView不显示错误图标或错误文本?

15 c# datagridview winforms

我有一个带有datagridview的win表单(c#).我将网格的数据源设置为数据表.

用户想要检查数据表中的某些数据是否存在于另一个源中,因此我们遍历表将行与其他源进行比较,并将数据表上的rowerror设置为短消息.datagridview未显示这些错误.datagridviewrows上的errortext已设置,但未显示错误.

我只是期望显示错误太多,它们只显示在编辑网格中的数据的上下文中?

我一直在修补这一天,并寻找一个发布simalar问题的人无济于事 - 帮助!

And*_*rew 10

检查AutoSizeRowsMode是否设置为DataGridViewAutoSizeRowsMode.None.我发现未设置为默认值Errortext时不显示行预览图标AutoSizeRowsMode.

DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
Run Code Online (Sandbox Code Playgroud)


Eri*_*der 8

对于原始海报来说这有点晚了,但这里为我解决了什么......

检查行高.如果小于19则不会绘制图标.尝试将其设置得更高,看看是否存在问题.

grid.RowTemplate.Height = 22
Run Code Online (Sandbox Code Playgroud)


小智 6

如果将e.Cancel设置为True,则不会显示图标。这不会让用户知道该线路上存在问题。


小智 5

DataGridView必须是在当时可见的ErrorText属性设置。


小智 5

如果您使用的是Visual Studio 2017并且您的数据未绑定到数据源,则必须在单元格而不是行上设置ErrorText ,如下所示:

gvwWebsites.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "You have already used that address.";
Run Code Online (Sandbox Code Playgroud)


Rob*_*ner -1

我相信错误只会在编辑时显示。您可以做的就是向 DataTable 添加一个 bool 列,该列驱动 DataGridView 中图像/自定义列的显示,反映是否存在错误。