给你一个删除的函数。 '删除选定行 Private Sub btnDel_Click(msfData As Object) Dim lngStart As Long Dim lngEnd As Long Dim lngRow As Long Dim lngCol As Long Dim lngRet As Long Dim i As Long lngRow = msfData.Row lngCol = msfData.Col
If msfData.Row > msfData.RowSel Then lngStart = msfData.RowSel lngEnd = msfData.Row lngRow = msfData.RowSel ElseIf msfData.Row = msfData.RowSel Then lngStart = msfData.Row lngEnd = msfData.RowSel Else lngStart = msfData.Row lngEnd = msfData.RowSel End If For i = lngStart To lngEnd If lngStart < msfData.Rows - 1 Then msfData.RemoveItem lngStart mblnChanged = True End If Next i msfData.RowSel = msfData.Row msfData.ColSel = msfData.Col msfData.Row = lngRow msfData.Col = lngCol End Sub
上面的 lngRet 变量你可以去掉,函数名你自己改改把,这是从原来写的程序中改了一下给你的
mblnChanged也可以去掉。再发一次给你吧。调用的时候把需要删除的flexgrid控件的名称传入就行了。 Private Sub RemoveRows(msfData As Object) Dim lngStart As Long Dim lngEnd As Long Dim lngRow As Long Dim lngCol As Long Dim lngRet As Long Dim i As Long lngRow = msfData.Row lngCol = msfData.Col
If msfData.Row > msfData.RowSel Then lngStart = msfData.RowSel lngEnd = msfData.Row lngRow = msfData.RowSel ElseIf msfData.Row = msfData.RowSel Then lngStart = msfData.Row lngEnd = msfData.RowSel Else lngStart = msfData.Row lngEnd = msfData.RowSel End If For i = lngStart To lngEnd If lngStart < msfData.Rows - 1 Then msfData.RemoveItem lngStart End If Next i msfData.RowSel = msfData.Row msfData.ColSel = msfData.Col msfData.Row = lngRow msfData.Col = lngCol End Sub
在删除的时候,你就可以根据那个ID跟是否改变了背景颜色来删除.
'删除选定行
Private Sub btnDel_Click(msfData As Object)
Dim lngStart As Long
Dim lngEnd As Long
Dim lngRow As Long
Dim lngCol As Long
Dim lngRet As Long
Dim i As Long
lngRow = msfData.Row
lngCol = msfData.Col
If msfData.Row > msfData.RowSel Then
lngStart = msfData.RowSel
lngEnd = msfData.Row
lngRow = msfData.RowSel
ElseIf msfData.Row = msfData.RowSel Then
lngStart = msfData.Row
lngEnd = msfData.RowSel
Else
lngStart = msfData.Row
lngEnd = msfData.RowSel
End If
For i = lngStart To lngEnd
If lngStart < msfData.Rows - 1 Then
msfData.RemoveItem lngStart
mblnChanged = True
End If
Next i
msfData.RowSel = msfData.Row
msfData.ColSel = msfData.Col
msfData.Row = lngRow
msfData.Col = lngCol
End Sub
Private Sub RemoveRows(msfData As Object)
Dim lngStart As Long
Dim lngEnd As Long
Dim lngRow As Long
Dim lngCol As Long
Dim lngRet As Long
Dim i As Long
lngRow = msfData.Row
lngCol = msfData.Col
If msfData.Row > msfData.RowSel Then
lngStart = msfData.RowSel
lngEnd = msfData.Row
lngRow = msfData.RowSel
ElseIf msfData.Row = msfData.RowSel Then
lngStart = msfData.Row
lngEnd = msfData.RowSel
Else
lngStart = msfData.Row
lngEnd = msfData.RowSel
End If
For i = lngStart To lngEnd
If lngStart < msfData.Rows - 1 Then
msfData.RemoveItem lngStart
End If
Next i
msfData.RowSel = msfData.Row
msfData.ColSel = msfData.Col
msfData.Row = lngRow
msfData.Col = lngCol
End Sub