矛盾问题!VSFlexGrid控件问题?100分!期待老鸟。
我的VSFlexGrid即要求单击列头排序,又要求实现可以对表内容进行修改的绑定功能,怎么办?
.DataMode = flexDMFree '要实现排序必须这样设置
.DataMode =flexDMBound '要实现修改表数据必须这样设置
矛盾呀??
[最优解释]
判断鼠标移动事件,如果鼠标在表头则.DataMode = flexDMFree,否则就.DataMode =flexDMBound
[其他解释]
补充:VSFlexGrid和Adodc1绑定的。
通过在Adodc1_FieldChangeComplete里加代码,实现保存数据。
Private Sub Adodc1_FieldChangeComplete(ByVal cFields As Long, Fields As Variant, ByVal pError As ADODB.error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'字段改变完成后触发的事件
bDataEdited = True
End Sub
[其他解释]
但是如果设置成下面的样子:
.DataMode =flexDMBound '要实现修改表数据必须这样设置
可以保存修改的数据,但无法实现单击列头的排序功能。矛盾呀!
[其他解释]
动态设置一下,试试
修改数据执行时
set VSFlexGrid.DataMode =flexDMBound
。。。。。。
完成后再改回
set VSFlexGrid.DataMode = flexDMFree
[其他解释]
我是在这个下面的事件里面实现单击列头排序的功能的,但只要前面
VSFlexGrid.DataMode =flexDMBound
以后单击列头下面的 VSFlexGrid_HeadClick 事件就不会响应了。想在该事件里面像你说的
方法就无从谈起了。
Private Sub VSFlexGrid_HeadClick(ByVal ColIndex As Integer)
'单击页眉进行排序
.....
End Sub
[其他解释]
Private Sub VSFlexGrid_HeadClick(ByVal ColIndex As Integer)
'单击页眉进行排序
set VSFlexGrid.DataMode =flexDMFree
。。。。。。
完成后再改回
set VSFlexGrid.DataMode = flexDMBound
End Sub
不行。因为初始化的时候 VSFlexGrid.DataMode = flexDMBound之后,再单击列头VSFlexGrid_HeadClick事件不响应。
[其他解释]
问题就是:1)如果VSFlexGrid.DataMode = flexDMFree
则,Adodc1_FieldChangeComplete事件不响应,无法实现修改的数据更新
2)如果VSFlexGrid.DataMode =flexDMBound
则,VSFlexGrid_HeadClick事件不响应,无法单击列头排序
[其他解释]
修改数据即保存到表,也不一定要用直接绑定数据源的方式...那样就不用设置这个属性了...
反正我是几乎不用直接绑定方式...
[其他解释]
我已经采用直接绑定的方式了,都是单表的情况,不好修改了。代码已经写了很多了。
[其他解释]
该回复于2011-05-16 08:39:07被版主删除
[其他解释]
可以考虑加以个带VSFlexGrid的窗体专作修改用,修改完返回到原窗口,点击排序
[其他解释]
这样太麻烦了,没有好的方法吗?
[其他解释]
期待老鸟。
[其他解释]
怎么判断鼠标在表头?
[其他解释]
Y坐标小于第一行的Y坐标
[其他解释]
我怎么知道第一行的Y坐标?窗体可以移动的。
[其他解释]
DataGrid控件有Head_Click事件,请问VSFlexGrid控件对应的事件是什么?
[其他解释]
收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 DataGrid控件有Head_Click事件,请问VSFlexGrid控件对应的事件是什么?
[其他解释]
暂时解决了
[其他解释]
已经结贴了?帮忙顶下。
[其他解释]
暂时这样解决的,但还是有点小问题。就是模式切换过程中排序的结果不能保留
Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And Shift = 1 Then '同时按下鼠标左键及SHIFT按键
DataGrid1.DataMode = flexDMFree
Else
DataGrid1.DataMode = flexDMBound
End If
End Sub
[其他解释]
暂时这样解决的,但还是有点小问题。就是模式切换过程中排序的结果不能保留
Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And Shift = 1 Then '同时按下鼠标左键及SHIFT按键
DataGrid1.DataMode = flexDMFree
Else
DataGrid1.DataMode = flexDMBound
End If
End Sub
[其他解释]
如果修改了呢?
[其他解释]
为虾米不直接在你的数据集对象里排序之后再绑定捏 ?
[其他解释]
这个问题解决的如何了
[其他解释]
不知道楼主这个问题解决的如何了,我也碰到同样的问题了,纠结啊