1。单元格想任意选择,按住ctrl不能记录住已经选择过的单元格。2。我想在程序里遍历选择的单元格,不知道用什么方法能知道这个单元格被我用鼠标select了。急问!下午交活儿。谢谢各位大哥大姐

解决方案 »

  1.   

    我有点思路但没有时间试验,你自己搞好了,在窗体上多放一个list,或vsflexgrid,(不算你显示数据的那个)当点击你显示数据的那个vs的时候把选择的那行写入你多加的这个list 中,这样你的选择就都在list中了,不知道行不行,你试验下吧
    vsflexgrid中好象没有直接支持的属性过方法!
      

  2.   

    可以用RowData属性来记录当前的操作状态。
      

  3.   

    楼上的能具体说明一下吗?同时我再查一下RowData属性!
      

  4.   

    下面是个例子:
    这能实现我想要的,判断单元格是否选择的要求吗?狐疑中
      
    Dim coll As New Collection 
      coll.Add "Hello" 
      coll.Add "World" 
       
      fg.RowData(1) = 212    
      fg.RowData(2) = "Hello"  
      fg.RowData(3) = coll    
      fg.RowData(4) = Me    
       
      Debug.Print TypeName(fg.RowData(1)), fg.RowData(1) 
      Debug.Print TypeName(fg.RowData(2)), fg.RowData(2) 
      Debug.Print TypeName(fg.RowData(3)), fg.RowData(3).Item(2) 
      Debug.Print TypeName(fg.RowData(4)), fg.RowData(4).Caption 
    结果
    Integer    212 String      Hello Collection    World Form1      Form1
      

  5.   

    Private Sub VSFlexGrid1_Click()
        Me.VSFlexGrid1.RowData(Me.VSFlexGrid1.RowSel) = "1"
    End Sub
    这个事件中可以记录点击的操作。要么在双击中记录。。这只是一个识别
       for i=1 to me.VSFlexGrid1.Rows-1
          if VSFlexGrid1.RowData(i)=1 then
             你要操作的记录
          next
       next
      

  6.   

    jiemupig(伦涯飘) 
    感谢你了,这个方法的确不错,我试一试。
    剩下第一个问题了,ctrl键不能实现复选cell的功能?
    还有高人能帮忙吗
      

  7.   

    再让高手看一看 ding!!!!!!!!!!
      

  8.   

    谢谢!
    我已经实现了一个单纯用mouse拖拉选择单元格,判断该范围的功能。
    用的是mousemove 和mouseup方法,因为单纯拖拉,松开鼠标后记录的单元格位置,仍然是按下鼠标的那个,所以只用判断出鼠标移动到哪个单元格松开鼠标(mouseup),把这个单元格位置记录下来,再循环取这个范围内的数值即可。
    现在就剩下,ctrl与鼠标的那种多选了。还是因为没有isselected这种判断。并且,按住ctrl并不能有多选的效果,这是剩下的两个问题。
    等待高手一起学习