在窗體上我有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中的單元格或整行的背景顏色,而無需將焦點移動到該網格?