VBA MSHFLEXGRID 错误 .单击事件中的行信息



我正在使用VBA MSHFLEXGRID,实际上2个网格采用相同的形式,一个在另一个下面,所以当我在第一个网格中选择一行时,第二个显示有关第一个网格行选择的信息。

好吧,问题是第二个网格,在第一个网格中选择一行后,在第二个网格中没有带来任何信息(我将数据通过自己的网格记录集,如果我不希望它显示信息,我会在加载过程中退出,它变得疯狂和.Click 事件中的 ROW 属性开始返回固定数字(如示例 4(,而不是单击的实际行。始终是一个数字,表示比上一行更高的行(偶数不在网格中的行(。我也尝试了.MOUSEROW 和这个一直返回 0(当网格变得疯狂时(。

这永远不会发生在第一个网格上,只会发生在第二个网格上。如果没有有关被单击行的真实信息,我无能为力。我已经看到使用不同的分辨率,问题会重置。像 1360x768 这样的低分辨率似乎不会发生,但在 1920x1080 和 2560x1440 下会发生。

解决了!我正在尝试案例和更多案例,试图理解为什么它有时会在随机案例中发生,并最终找到了它。当您将记录集直接设置为网格 (设置 Grid.Recordset = xxxx( 并且此 xxx 为空时,会出现此问题。是的,EOF。所以我在做一个.清除结构,然后是 SET。在此之后,如果我使用非空记录集执行另一个 SET(第二个网格的另一个选择(,那么它会发疯。

因此,我所做的只是简单地首先分配一个记录集对象来检查 SQL 查询是否为空,如果它不为空,然后才将记录集分配给网格。哦,天哪,这让我在很长一段时间后都发疯了。

最新更新