VSFlexGrid Control > VSFlexGrid Properties, Events, and Methods > VSFlexGrid Events > BeforeRowColChange Event |
Fired before the current cell (Row, Col) changes to a different cell.
Private Sub VSFlexGrid_BeforeRowColChange( ByVal OldRow As Long, ByVal OldCol As Long, ByVal NewRow As Long, ByVal NewCol As Long, Cancel As Boolean)
This event gets fired before the Row and Col properties change, either as a result of user actions or through code. It allows you to prevent the selection of certain cells, thus creating "protected" ranges on a grid.
BeforeRowColChange It is fired only when the Row and Col property are about to change. To prevent the extended selection of a range, you also need to handle the BeforeSelChange event.
For example, the following code creates a protected range with a green background and prevents the user from selecting any cells on the protected range and from extending any selections into the protected area:
' highlight protected range
Private Sub Form_Load()
fg.Cell(flexcpBackColor, 2, 2, 8, 4) = RGB(200, 250, 200)
End Sub
' cancel if new cell is in protected area
Private Sub fg_BeforeRowColChange(ByVal OldRow As Long, ByVal OldCol As Long, _
ByVal NewRow As Long, ByVal NewCol As Long, Cancel As Boolean)
If NewRow >= 2 And NewRow <= 8 And NewCol >= 2 And NewCol <= 4 Then Cancel = True
End Sub
' cancel if new selection is on protected area
Private Sub fg_BeforeSelChange(ByVal OldRowSel As Long, ByVal OldColSel As Long, _
ByVal NewRowSel As Long, ByVal NewColSel As Long, Cancel As Boolean)
If (fg.Row < 2 And NewRowSel < 2) Or (fg.Col < 2 And NewColSel < 2) Then Exit Sub
If (fg.Row > 8 And NewRowSel > 8) Or (fg.Col > 4 And NewColSel > 4) Then Exit Sub
Cancel = True
End Sub