关于DataGrid按Ctrl或Shift,用鼠标点网格,选择多行记录。并要获取这多条记录中的某一项值。
如DataGrid上显示如下:
    学号  姓名   成绩
     1    a     99
     2    b     98
     3    c     96
     4    d     95
我按住Ctrl后,选择1,3,4这几条记录后,1,3,4记录整行变色,并获取到a,c,d这三个值。

解决方案 »

  1.   

    作为绑定表格,选中行与记录集有当前行对应,通常不支持多选。
    可改用 ListView
    Option ExplicitPrivate Sub Command1_Click()
        Dim lvi As ListItem
        
        Debug.Print "当前选中: ";
        For Each lvi In ListView1.ListItems
            If lvi.Selected Then
                Debug.Print lvi.SubItems(1) & ",";
            End If
        Next
        Debug.Print
    End SubPrivate Sub Form_Load()
        Dim lvi As ListItem
        
        ListView1.GridLines = True
        ListView1.FullRowSelect = True
        ListView1.HideSelection = False
        ListView1.MultiSelect = True
        ListView1.View = lvwReport
        
        ListView1.ColumnHeaders.Add , , "学号"
        ListView1.ColumnHeaders.Add , , "姓名"
        ListView1.ColumnHeaders.Add , , "成绩"
        
        Set lvi = ListView1.ListItems.Add(, , "1")
        lvi.SubItems(1) = "a"
        lvi.SubItems(2) = 99
        Set lvi = ListView1.ListItems.Add(, , "2")
        lvi.SubItems(1) = "b"
        lvi.SubItems(2) = 98
        Set lvi = ListView1.ListItems.Add(, , "3")
        lvi.SubItems(1) = "c"
        lvi.SubItems(2) = 96
        Set lvi = ListView1.ListItems.Add(, , "4")
        lvi.SubItems(1) = "d"
        lvi.SubItems(2) = 95
    End Sub
      

  2.   


    可以用 DataGrid 的 SelBooks 集合,它有 Count 属性、Add 和 Remove 方法。你可以通过 MouseDown 和 RowColChange 事件处理多选操作。