datagridview - 无法在特定数据列上设置visible / read only属性

时间:2013-01-30 22:18:55

标签: vb.net datagridview datasource readonly visible

我在应用程序中有一个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数据库的副本,因此问题不应该与数据相关。

当列不可见或只读时会导致重入调用的内容是什么?

1 个答案:

答案 0 :(得分:0)

我要做的是,而不是循环遍历datagridview中的每一列,循环遍历源数据表中的列,并为源列创建datagridview列,使用列名而不是索引不可见。指数可以随机播放(当摆弄属性时),名称保持不变,除非你改变它们。

我之前遇到过类似的障碍。