我在应用程序中有一个datagridview。 datagridview有一个数据表作为其数据源。
在填充datagridview之后,我有一个设置列属性的过程(宽度,可见,只读)。
此过程适用于我的开发环境。但是,在我的生产环境中,我收到了以下消息:
操作无效,因为它会导致对SetCurrentCellAddressCore函数的可重入调用。
我已将问题缩小到此代码的Visible = False:
For i As Integer = 0 To D.Columns.Count - 1
D.Columns(i).Width = 50
D.Columns(i).DefaultCellStyle.Alignment=DataGridViewContentAlignment.MiddleLeft
D.Columns(i).Visible = False
Next
错误仅发生在第1列。但是,如果我将第1列排除在不可见之外,则当我将第1列设置为只读时,应用程序将失败。
我理解可重入调用错误是由于无限循环,因为正在使用datagridview单元格。但是,代码在dev中工作。我在生产测试中使用了dev数据库的副本,因此问题不应该与数据相关。
当列不可见或只读时会导致重入调用的内容是什么?
答案 0 :(得分:0)
我要做的是,而不是循环遍历datagridview中的每一列,循环遍历源数据表中的列,并为源列创建datagridview列,使用列名而不是索引不可见。指数可以随机播放(当摆弄属性时),名称保持不变,除非你改变它们。
我之前遇到过类似的障碍。