Dim tbl As SmGrid=Proj.CurrentSmGrid
'打开复选框选择
tbl.ShowCheckBox=True
'选择所有行
tbl.CheckAllRows()
'选择当前Selection选区内的所有行
tbl.CheckAllRows(tbl.CheckBoxColName,True)
'我们还可以针对其他列进行选择
tbl.CheckAllRows("是否在职") '全选
tbl.CheckAllRows("是否在职",True) '只选择当前Selection选区内的所有行
'与CheckAllRows相对,ClearCheckedRows是将所有行的选择状态都清空,设置为False
'取消所有行选择状态
tbl.ClearCheckedRows()
'当前Selection选区内的所有行取消选择
tbl.ClearCheckedRows(tbl.CheckBoxColName,True)
'我们还可以针对其他列进行取消选择
tbl.ClearCheckedRows("是否在职") '全部取消
tbl.ClearCheckedRows("是否在职",True) '只针对当前Selection选区内的所有行取消选择
'与CheckAllRows相关的,还有一个UnCheckAllRows
'所有行选择状态取反
tbl.UnCheckAllRows()
'当前Selection选区内的所有行选择状态取反
tbl.UnCheckAllRows(tbl.CheckBoxColName,True)
'我们还可以针对其他列进行选择状态取反
tbl.UnCheckAllRows("是否在职") '全部取反
tbl.UnCheckAllRows("是否在职",True) '只针对当前Selection选区内的所有行进行取反操作
'筛选和隐藏还是有点区别的,隐藏只是把行的高度设置为0
'隐藏所有选择行。
tbl.HideCheckedRows()
'隐藏所有未选择行。
tbl.HideUnCheckedRows()
'显示所有隐藏的行
tbl.ShowAllRows()
'获得所有选择好的行集合。
Dim lstDrs As List(Of RowData)=tbl.GetCheckedRows()
For Each dr As RowData In lstDrs
Proj.MsgDebug.Add(dr(0))
Next
'删除当前所选择的所有行
tbl.DeleteSelectedRows()
If tbl.Selection.IsValid Then
'清空当前表中选择区域中所有的数据为DBNull.Value。
tbl.ClearSelectedRangeData()
End If
|