上下放两个mshflexgrid,当上面表格列宽被拖宽时,下面表格如何同步改变呢?
我用上面表格显示明细,下面表格显示合计,我将各列的列宽设成一样,可是当用户改变上面明细表的列宽时,上下两个表格就不一样了,所以我想实现当上面表格列宽改变时,下面表格也跟着同步变,如何实现呢?
我用上面表格显示明细,下面表格显示合计,我将各列的列宽设成一样,可是当用户改变上面明细表的列宽时,上下两个表格就不一样了,所以我想实现当上面表格列宽改变时,下面表格也跟着同步变,如何实现呢?
解决方案 »
- 一段修改注册表的源程序 不能执行请帮忙 VB修改注册表的问题
- 求助 关于随机抽签的DEMO
- 相信每个用VB的朋友都知道的技术问题,我刚学VB,不知道,请教我!
- 光盘刻录问题!!!急!!!!大家帮忙看看
- sndPlaySound这个API是什么意思,为什么有此关于API的参考书中没有这个、
- 不用控件 调用系统的树型路径对话框(像flashget那种)
- 请问CommandButoon命令按钮按钮前面怎么加入小图标?
- 如何在DATAGRID控件的一列中加入COMBO控件?
- vb usb 代替串口 通信编程
- CopyFolder方法,子级同名文件夹影响父级文件夹无法复制。
- 各位高人,WIA是完全免费的吗?如何使用?
- 定义了一个类,可是在窗体中没法用,为什么?
1,写subclass进行监视
2,检测鼠标的变化现在介绍你一个非常简单的第3个办法,你加一个Trimer控件在form上,然后你看下面这段代码,自己看结果吧
Private Sub Form_Load()
Me.MSFlexGrid1.Cols = 5
Me.MSFlexGrid2.Cols = 5
Me.Timer1.Enabled = True
Me.Timer1.Interval = 10
End SubPrivate Sub Timer1_Timer()
Dim i As Integer
For i = 0 To Me.MSFlexGrid1.Cols - 1
Me.MSFlexGrid2.ColWidth(i) = Me.MSFlexGrid1.ColWidth(i)
Next
End Sub
Private Sub Timer1_Timer()if MSFlexGrid1列宽改变 then
Dim i As Integer
For i = 0 To Me.MSFlexGrid1.Cols - 1
Me.MSFlexGrid2.ColWidth(i) = Me.MSFlexGrid1.ColWidth(i)
Next
end if
End Sub
Private Sub Timer1_Timer()if MSFlexGrid1列宽改变 then
Dim i As Integer
For i = 0 To Me.MSFlexGrid1.Cols - 1
Me.MSFlexGrid2.ColWidth(i) = Me.MSFlexGrid1.ColWidth(i)
Next
end if
End Sub
-----------------------
这些代码我是知道的,关键是
我就是想问如何检测到mshflexgrid的列宽发生改变呀?
检测哪个事件呀?
我就是想问如何检测到mshflexgrid的列宽发生改变呀?
检测哪个事件呀?
//我已经告诉过你没有事件检测,有,还要用Trimer做什么拜托各位答题前自己都测试下
'复制下列代码,即可验证
'--------------------------------------------
'声明全局变量
Dim blMove As Boolean '列宽改变标志
Dim iColWidth() As Integer '存放MSFlexGrid1列宽数组
'你可以定义2维数组,只记录那些改变的列宽
'--------------------------------------------Private Sub Form_Load()
blMove = False '开始时当然没移动了
MSFlexGrid1.Cols = 5
MSFlexGrid1.Rows = 100
MSFlexGrid2.Cols = 5
MSFlexGrid2.Rows = 100 ReDim iColWidth(MSFlexGrid1.Cols) '根据实际列宽重新定义记录数组的大小
For i = 0 To MSFlexGrid1.Cols - 1
iColWidth(i) = MSFlexGrid1.ColWidth(i)
Next
For i = 0 To MSFlexGrid1.Rows - 1
For j = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(i, j) = i & "," & j
MSFlexGrid2.TextMatrix(i, j) = i & "," & j
Next j
Next i
Timer1.Enabled = True
Timer1.Interval = 100
End SubPrivate Sub Timer1_Timer()
Call CheckWidth '检查是否列宽改变了
If blMove Then '如果改变了
For i = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid2.ColWidth(i) = MSFlexGrid1.ColWidth(i)
Next
End If
'重新记录列宽
For i = 0 To MSFlexGrid1.Cols - 1
iColWidth(i) = MSFlexGrid1.ColWidth(i)
Next
blMove = False
End Sub Sub CheckWidth() '检查是否列宽改变了
For i = 0 To MSFlexGrid1.Cols - 1
If MSFlexGrid1.ColWidth(i) <> iColWidth(i) Then
blMove = True
Exit For
End If
Next
End Sub