vb mshflexgrid问题
两个MSHFLEXGRID控件,mshflexgrid1和mshflexgrid2,如何将mshflexgrid1的行的内容移动到mshflexgrid2并将该行删除,反之也成立。我写的代码只能实现把mshflexgrid1的行全部移动到mshflexgrid2,反之把mshflexgrid2的全部行可以移动到mshflexgrid1。但是当mshflexgrid1的内容不全部移动到mshflexgrid2时,也就是mshflexgrid1里还存在几行,mshflexgrid2里也有几行时,再把mshflexgrid2里的行移到mshflexgrid1里就出错了,从mshflexgrid2移到mshflexgrid1的行说覆盖了mshflexgrid1的行一行,后面以此类推,请问怎样解决这个问题?我的代码如下 :
'从mshflexgrid1到mshflexgrid2
Private Sub grid1togrid2_Click()
Dim i As Integer
For i = MSHFlexGrid2.Row To MSHFlexGrid2.Row
MSHFlexGrid2.RowHeight(MSHFlexGrid2.Row) = 255
MSHFlexGrid2.TextMatrix(i, 0) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0)
MSHFlexGrid2.TextMatrix(i, 1) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)
MSHFlexGrid2.TextMatrix(i, 2) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2)
MSHFlexGrid2.TextMatrix(i, 3) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 3)
If MSHFlexGrid1.Rows > 2 Then
MSHFlexGrid1.RemoveItem (MSHFlexGrid1.Row)
Else
MSHFlexGrid1.AddItem "", MSHFlexGrid1.FixedRows '清空最后一非固定行
MSHFlexGrid1.Rows = MSHFlexGrid1.FixedRows + 1
End If
MSHFlexGrid2.AddItem (Row)
MSHFlexGrid2.Row = MSHFlexGrid2.Row + 1
MSHFlexGrid2.RowHeight(MSHFlexGrid2.Row) = 0
Next
End Sub
'从mshflexgrid2到mshflexgrid1
Private Sub grid2togrid1_Click()
Dim j As Integer
For j = MSHFlexGrid1.Row To MSHFlexGrid1.Row
MSHFlexGrid1.RowHeight(MSHFlexGrid1.Row) = 255
MSHFlexGrid1.TextMatrix(j, 0) = MSHFlexGrid2.TextMatrix(MSHFlexGrid2.Row, 0)
MSHFlexGrid1.TextMatrix(j, 1) = MSHFlexGrid2.TextMatrix(MSHFlexGrid2.Row, 1)
MSHFlexGrid1.TextMatrix(j, 2) = MSHFlexGrid2.TextMatrix(MSHFlexGrid2.Row, 2)
MSHFlexGrid1.TextMatrix(j, 3) = MSHFlexGrid2.TextMatrix(MSHFlexGrid2.Row, 3)
If MSHFlexGrid2.Rows > 2 Then
MSHFlexGrid2.RemoveItem (MSHFlexGrid2.Row)
Else
MSHFlexGrid2.AddItem "", MSHFlexGrid2.FixedRows
MSHFlexGrid2.Rows = MSHFlexGrid2.FixedRows + 1
End If
MSHFlexGrid1.AddItem (Row)
MSHFlexGrid1.Row = MSHFlexGrid1.Row + 1
MSHFlexGrid1.RowHeight(MSHFlexGrid1.Row) = 0
Next
End Sub
注:两按钮的代码完全一样。