양식에 4 개의 MSFlexGrid가 있습니다.포커스를 변경하지 않고 셀 배경색을 변경하십시오.
상위 그리드에는 한동안 업데이트되는 동적 데이터가 포함되어 있습니다. 사용자는 다른 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에서 해당 격자로 포커스를 이동하지 않고 셀 또는 전체 행의 배경색을 변경할 수 있습니까?