MSFlexGrid的默认值第一行第一列为固定行列,行列值从0开始。
MSFlexGrid1.RemoveItem 1 在固定行上面不能用RemoveItem
所以会有你这个问题。试试
If MSFlexGrid1.Rows > 1 Then
If MsgBox("确认要删除这条记录吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
i = MSFlexGrid1.Row
str= MSFlexGrid1.TextMatrix(i, 0)
str= ""
MSFlexGrid1.TextMatrix(i, 0) = str
str= MSFlexGrid1.TextMatrix(i, 1)
str= ""
MSFlexGrid1.TextMatrix(i, 1) = str
For j = i To (MSFlexGrid1.Rows - 2)
MSFlexGrid1.TextMatrix(j, 0) = MSFlexGrid1.TextMatrix(j + 1, 0)
MSFlexGrid1.TextMatrix(j, 1) = MSFlexGrid1.TextMatrix(j + 1, 1)
Next j
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
If MSFlexGrid1.Rows = 1 Then
cmdDelRecord.Enabled = False
End If
End If
End If
MSFlexGrid1.RemoveItem 1 在固定行上面不能用RemoveItem
所以会有你这个问题。试试
If MSFlexGrid1.Rows > 1 Then
If MsgBox("确认要删除这条记录吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
i = MSFlexGrid1.Row
str= MSFlexGrid1.TextMatrix(i, 0)
str= ""
MSFlexGrid1.TextMatrix(i, 0) = str
str= MSFlexGrid1.TextMatrix(i, 1)
str= ""
MSFlexGrid1.TextMatrix(i, 1) = str
For j = i To (MSFlexGrid1.Rows - 2)
MSFlexGrid1.TextMatrix(j, 0) = MSFlexGrid1.TextMatrix(j + 1, 0)
MSFlexGrid1.TextMatrix(j, 1) = MSFlexGrid1.TextMatrix(j + 1, 1)
Next j
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
If MSFlexGrid1.Rows = 1 Then
cmdDelRecord.Enabled = False
End If
End If
End If
MSFlexGrid1.RemoveItem 1
if msflexgrid1.rows>1 then msflexgrid1.fixedrows=1
如果你的固定行为一,总行不能小于二,如只有两行,那再删除就会出错.
,而且固定行也是不能删除的,还有mshflexgrid是的行是从0开始记数的,所以
MSFlexGrid1.RemoveItem 1 是删除第二行.列是相同的道理.
说了这些有点乱,不知能不能看明白.