FORM A:
一个sstab控件,在每个tab上都有一个mshflexgrid控件,而且把这个控件做成了控件数组。有一个添加按钮,有一个删除按钮。可以分别添加或删除mshflexgrid中的数据。
FORM B:
有一个listview控件,显示用户能够添加的所有数据,有一个确定按钮。点击确定,返回FORM A。然后刷新FORM A ,更新显示的数据。
我给mshflexgrid写了click事件,想在鼠标点击一个单元格的时候整行变色,这个目前已经实现。
问题是的当我把mshflexgrid里的数据全部删除后,在FORM B 上选中数据添加后,数据显示没问题,但点击一个单元格,就不能变色了。如果我没有把mshflexgrid里的数据全部删除,添加后单元格变色是正常的。我跟踪了一下,发现click事件中调用函数的参数有问题。代码如下:Private Sub FlexGrid_Click(Index As Integer)
Call RowColor(FlexGrid(Index).Row, FlexGrid(Index)) '就是这个FlexGrid(Index).Row传的值不对
End SubPrivate Sub RowColor(cRow As Long, grid As MSHFlexGrid)
With grid 'cRow是当前点击的行,lastRow是上次点击的行,为全局变量
If cRow <> 0 And cRow <> grid.Rows And cRow <> lastRow Then
For i = 1 To .Cols - 1
.Row = cRow
.Col = i
.CellBackColor = &H8AFDFD
If lastRow <> 0 Then
If lastRow >= .Rows Then
.Row = .Rows - 1
Else
.Row = lastRow
End If
.CellBackColor = &HD1FDCC
End If
Next i
lastRow = cRow
End If
End With
End Sub不知道为什么会出现这个错误。不管mshflexgrid中的数据有没有全部删除,其执行的代码都是一样的。各位帮忙看看了,不甚感激!
一个sstab控件,在每个tab上都有一个mshflexgrid控件,而且把这个控件做成了控件数组。有一个添加按钮,有一个删除按钮。可以分别添加或删除mshflexgrid中的数据。
FORM B:
有一个listview控件,显示用户能够添加的所有数据,有一个确定按钮。点击确定,返回FORM A。然后刷新FORM A ,更新显示的数据。
我给mshflexgrid写了click事件,想在鼠标点击一个单元格的时候整行变色,这个目前已经实现。
问题是的当我把mshflexgrid里的数据全部删除后,在FORM B 上选中数据添加后,数据显示没问题,但点击一个单元格,就不能变色了。如果我没有把mshflexgrid里的数据全部删除,添加后单元格变色是正常的。我跟踪了一下,发现click事件中调用函数的参数有问题。代码如下:Private Sub FlexGrid_Click(Index As Integer)
Call RowColor(FlexGrid(Index).Row, FlexGrid(Index)) '就是这个FlexGrid(Index).Row传的值不对
End SubPrivate Sub RowColor(cRow As Long, grid As MSHFlexGrid)
With grid 'cRow是当前点击的行,lastRow是上次点击的行,为全局变量
If cRow <> 0 And cRow <> grid.Rows And cRow <> lastRow Then
For i = 1 To .Cols - 1
.Row = cRow
.Col = i
.CellBackColor = &H8AFDFD
If lastRow <> 0 Then
If lastRow >= .Rows Then
.Row = .Rows - 1
Else
.Row = lastRow
End If
.CellBackColor = &HD1FDCC
End If
Next i
lastRow = cRow
End If
End With
End Sub不知道为什么会出现这个错误。不管mshflexgrid中的数据有没有全部删除,其执行的代码都是一样的。各位帮忙看看了,不甚感激!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货