程序原本有一个事件:
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i, j, k As Integer
Dim LastStopRow, StopRow As Integer
Dim SaveCol As Integer
StopRow = 4
If MSFlexGrid1.Row = 4 And MSFlexGrid1.Col <> 0 Then
If MSFlexGrid1.CellBackColor = vbRed Then
'//////////////////////////// 红变黄 //////////////////////////
Text2.Text = ""
MSFlexGrid1.CellBackColor = &H80FFFF
NumNeed = NumNeed - 1
StatusBar1.Panels(3).Text = "现有" + Str(NumNeed) + " 个要求被选中"
If NumNeed = 0 Then
Command1.Enabled = False
清除所有加工要求.Enabled = False
StatusBar1.Panels(2).Text = "点击某加工要求下面对应的黄色单元格即选中该要求,选中后单元格用红色表示"
End If
MSFlexGrid1.FocusRect = flexFocusNone
For i = 5 To 26
MSFlexGrid1.Row = i
If MSFlexGrid1.Text = "●" Then
LastStopRow = i
End If
Next i
MSFlexGrid1.FocusRect = flexFocusLight
For i = 5 To LastStopRow
MSFlexGrid1.Row = i
If MSFlexGrid1.Text = "●" Then
For j = StopRow + 1 To i
If j - 1 <> StopRow Then
MSFlexGrid1.Row = j - 1
MSFlexGrid1.CellBackColor = vbWhite
End If
For k = MSFlexGrid1.Col To 1 Step -1
If k <> 27 Then
MSFlexGrid1.Col = k + 1
MSFlexGrid1.CellBackColor = vbWhite
End If
MSFlexGrid1.Col = k
If RedTimes(MSFlexGrid1.Row) > 1 Then
RedTimes(MSFlexGrid1.Row) = RedTimes(MSFlexGrid1.Row) - 1
Else
MSFlexGrid1.CellBackColor = &HFFC0C0
RedTimes(MSFlexGrid1.Row) = RedTimes(MSFlexGrid1.Row) - 1
End If
Next k
End If
MSFlexGrid1.Col = SaveCol
Next j
For k = MSFlexGrid1.Col To 1 Step -1
If k <> 27 Then
MSFlexGrid1.Col = k + 1
MSFlexGrid1.CellBackColor = vbWhite
End If
MSFlexGrid1.Col = k
MSFlexGrid1.CellBackColor = vbRed
RedTimes(MSFlexGrid1.Row) = RedTimes(MSFlexGrid1.Row) + 1
Next k
End If
MSFlexGrid1.Col = SaveCol
Next j
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim myrow As Integer, mycol As Integer, allow As Boolean
allow = True
With MSFlexGrid1
myrow = .MouseRow
mycol = .MouseCol
On Error Resume Next
.Row = myrow - 1
.Col = mycol
If .CellBackColor = vbRed Then allow = False: Exit Sub
.Row = myrow + 1
.Col = mycol
If .CellBackColor = vbRed Then allow = False: Exit Sub
.Row = myrow
.Col = mycol - 1
If .CellBackColor = vbRed Then allow = False: Exit Sub
.Row = myrow
.Col = mycol + 1
If .CellBackColor = vbRed Then allow = False: Exit Sub
.Row = myrow
.Col = mycol
End With
If allow = True Then MsgBox "这个格可以有反应"