На форме у меня есть 4 MSFlexGrids.Изменение цвета фона ячейки без изменения фокуса
Верхняя сетка содержит динамические данные, которые обновляются время от времени. Пользователь может вводить данные в ячейки трех других сеток.
Данные, которые используются для заполнения верхней сетки принимается посредством управления 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, не перемещая фокус на эту сетку?