msflexgrid与data1进行绑定后,data1通过sql语句,查询一张数据库表中的所有内容.
这个没有什么问题...现在是想通过单击msflexgrid的第0行中的某个cell,然后再用SQL语句根据cell中的内容进行排序.但是问题便出现了:
因为通过select语句查询出来的结果,第0行的各个单元格所对应的内容刚好就是表中的各个字段值..
然而在程序运行时,发现第0行的内容都不可选!为此本人专门做了一个试验,情况如下:msflexgrid.row和msflexgrid.col分别表示当前cell的行号和列号,所以本人特意在msflexgrid控件的click事件中
写入如下代码(仅一行):
msgbox "msflexgrid.row=" & msflexgrid.row & ", msflexgrid.col" & msflexgrid.col按F5运行后,本人试图点击第0行第1列的cell时获取它相应的行号和列号,按理论上来说,当我点击第0行第1列的cell时,弹出的对应框的值应该为:msflexgrid.row=0, msflexgrid.row=1可是结果却是msflexgrid.row=1, msflexgrid.row=1通过多次实验得到一个结论:
只要是单击第0行的某个单元格时,显示的列号是正确的,而行号总是1!但这个结论对于我来说是件很郁闷的事情,因为我只是想针对第0行第x列的单击格进行相关事件的编码,以实现根据其内容进行排序的功能.高分相送,望各位大哥大姐不吝赐教!!!

解决方案 »

  1.   

    因为通过select语句查询出来的结果,第0行的各个单元格所对应的内容刚好就是表中的各个字段值.. 
    修正为:因为通过select语句查询出来的结果,第0行的各个单元格所对应的内容刚好就是表中的各个字段名称.. 
      

  2.   

    排序重新检索数据库这样太浪费资源了,直接用recordset的排序.
    你测试msflexgrid有问题,推荐你用spread控件,这样排序都不用写了,设置属性就可以
      

  3.   

    点标头是选中第一行的
    直接获取标头即可
    Private Sub MSFlexGrid1_Click()
        MsgBox MSFlexGrid1.TextMatrix(0, MSFlexGrid1.Col)
    End Sub
      

  4.   

    这样的话,如果单击第1列下的任意一个cell,都会显示第0行第1列cell中的内容...
    第X行同理...但我只想单击列标头的那个单元格时进行事件代码的操作.
    也就是说比如第1列标头为"用户名",下面就有五个用户名称了...
    可是如果按照你的这个方法时,在单击任意一个用户的时候,都是显示的是列标头的内容.此"用户名"是处在第0行第1列的,我只想在鼠标单击或双击时进行五个用户名称的排序!!!
      

  5.   


    这位兄弟为什么说太浪费资源呢??检索数据库应该很快的啊.
    我用msflexgrid的原因是因为它比较能够符合我的要求,当然还有其他要求(比如说单数行与偶数行分别用二种颜色做背景色等等)..
      

  6.   

    想选中第 0 行的单元就必须设 FixedRows=0,否则就是选中整列,焦点当然会在第 1 行。
      

  7.   


    这种方法我也试过了...但是当fixedrows=0时,也就等于没有了列标头.这样检索出来的数据没有字段说明,看上去会很不直观,而且这样更加无法实现根据字段进行排序的功能了!!!
      

  8.   

    既然是列头就不能被独立选中,就像 Excel 的列头一样。
      

  9.   

    ListView,有列头的点击事件,自带排序功能,缺点是不能绑定需要编程填充。
      

  10.   

    使用 MSHFlexGrid1.MouseRow, MSHFlexGrid1.MouseCol属性。获取鼠标所在行或列。
    http://www.mingribook.com/
      

  11.   

    有固定行/固定列,就应该用MSHFlexGrid1.MouseRow, MSHFlexGrid1.MouseCol属性来进行处理.