关于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这三个值。
如DataGrid上显示如下:
学号 姓名 成绩
1 a 99
2 b 98
3 c 96
4 d 95
我按住Ctrl后,选择1,3,4这几条记录后,1,3,4记录整行变色,并获取到a,c,d这三个值。
可改用 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
可以用 DataGrid 的 SelBooks 集合,它有 Count 属性、Add 和 Remove 方法。你可以通过 MouseDown 和 RowColChange 事件处理多选操作。