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
注:两按钮的代码完全一样。
'从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
注:两按钮的代码完全一样。
...全文
相关推荐
VB非常好用的mshflexgrid打印控件
在VB(Visual Basic)编程环境中,MSHFlexGrid控件是一个非常流行的用于显示二维表格数据的组件。
VB.net 实现MSHFlexGrid 滚轮事件
本篇将详细介绍如何在VB.NET中正确地实现MSHFlexGrid控件的滚轮事件,以解决上述问题。首先,我们需要理解MSHFlexGrid控件的基本用法。
VB数据库编程中MSHFlexGrid控件用法详解.doc
MSHFlexGrid控件的缺点:MSHFlexGrid控件的使用需要一定的编程基础和经验,否则可能会出现难以解决的问题。
设置MSHFlexGrid滚动条滑块大小的源码
为了解决这个问题,我们可以编写源码来自定义滑块的大小,提高用户体验。首先,我们需要了解MSHFlexGrid控件的基本属性和方法。
mshflexgrid打印控
【mshflexgrid打印控件】是Windows编程中常用的一种组件,主要用于在应用程序中展示网格数据,它在VB(Visual Basic)和VBA(Visual Basic for Applications


VB基础类
