在窗体上我有4个MSFlexGrids。更改单元格背景颜色而不更改焦点
顶部网格包含动态数据,它会在一段时间内更新一次。 用户可以在其他3个网格的单元格中输入数据。
,其用于填充顶格的数据通过一个Winsock控制接收,处理,然后将结果是使用.TextMatrix(intRow, intCol) = strData
这工作正常写入到合适的细胞。数据更新完美无瑕,用户可以将他的数据输入到其他3个网格中,没有任何问题。
当我想更改顶部网格中某些单元格的背景颜色时,会发生此问题。 在极少数情况下,接收到的数据非常重要,相应单元的背景颜色应该改变颜色。
我改变单元格的颜色用下面的代码:
With grd
For lngRow = 1 To .Rows - 1
'default background color
lngBack = vbWhite
'check for important values
If Val(.TextMatrix(lngRow, 1)) >= lngMax Then
'important color
lngBack = &H3040FF
End If
'select whole row
.Row = lngRow
.Col = 0
.RowSel = lngRow
.ColSel = .Cols - 1
'set the background color of the selected row
.CellBackColor = lngBack
Next lngRow
End With 'grd
与此问题是,当用户在其它3个网格输入数据,和一排中的背景颜色顶部网格被改变,然后焦点移动到顶部网格,并且用户必须在他工作的网格中重新输入他的数据。
是否可以更改MSFlexGrid中的单元格或整行的背景颜色,而无需将焦点移动到该网格?