首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

矛盾有关问题!VSFlexGrid控件有关问题?100分!期待老鸟

2012-12-15 
矛盾问题!VSFlexGrid控件问题?100分!期待老鸟。我的VSFlexGrid即要求单击列头排序,又要求实现可以对表内容

矛盾问题!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 

[其他解释]

引用:
动态设置一下,试试
修改数据执行时
set VSFlexGrid.DataMode =flexDMBound 
。。。。。。
完成后再改回
set VSFlexGrid.DataMode = flexDMFree

我是在这个下面的事件里面实现单击列头排序的功能的,但只要前面
VSFlexGrid.DataMode =flexDMBound
以后单击列头下面的 VSFlexGrid_HeadClick 事件就不会响应了。想在该事件里面像你说的
方法就无从谈起了。
Private Sub VSFlexGrid_HeadClick(ByVal ColIndex As Integer)
'单击页眉进行排序
.....
End Sub
[其他解释]
引用:
动态设置一下,试试
修改数据执行时
set VSFlexGrid.DataMode =flexDMBound 
。。。。。。
完成后再改回
set VSFlexGrid.DataMode = flexDMFree


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的窗体专作修改用,修改完返回到原窗口,点击排序
[其他解释]

引用:
可以考虑加以个带VSFlexGrid的窗体专作修改用,修改完返回到原窗口,点击排序

这样太麻烦了,没有好的方法吗?
[其他解释]
期待老鸟。
[其他解释]
引用:
判断鼠标移动事件,如果鼠标在表头则.DataMode = flexDMFree,否则就.DataMode =flexDMBound
怎么判断鼠标在表头?
[其他解释]
Y坐标小于第一行的Y坐标
[其他解释]
引用:
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

[其他解释]
引用:
为虾米不直接在你的数据集对象里排序之后再绑定捏 ?

如果修改了呢?
[其他解释]
为虾米不直接在你的数据集对象里排序之后再绑定捏 ?
[其他解释]
这个问题解决的如何了
[其他解释]
不知道楼主这个问题解决的如何了,我也碰到同样的问题了,纠结啊

热点排行