Quantcast
Channel: VBForums - CodeBank - Visual Basic 6 and earlier
Viewing all articles
Browse latest Browse all 1448

DataGrid Multiple Row Selection

$
0
0
The Data Bound DataGrid Control provides the ability to select
multiple rows using the CTRL key and mouse, but it lacks the
ability to use the SHIFT key in conjunction with the mouse.
The routines below add that ability by utilizing the MouseUp event.
Code:

Option Explicit

Dim PrevBmk          As Long
Dim CurrentBmk      As Long

Private Sub DataGrid1_Click()
        If DataGrid1.SelBookmarks.Count > 0 Then
                'If there is a bookmark present, make it the previous bookmark
                CurrentBmk = DataGrid1.SelBookmarks(DataGrid1.SelBookmarks.Count - 1)
        End If
End Sub

Private Sub DataGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
        Dim M%, N%
        If Shift > 0 And DataGrid1.SelBookmarks.Count = 0 Then
                'Prompt user to utilize row selection column
                MsgBox "You must use the far left column to select multiple records!"
        ElseIf Shift = vbShiftMask Then
                PrevBmk = CurrentBmk 'Save previous bookmark
                CurrentBmk = DataGrid1.SelBookmarks(DataGrid1.SelBookmarks.Count - 1)
                Debug.Print PrevBmk, CurrentBmk
                If PrevBmk = 0 Then Exit Sub 'no previous bookmark
                N% = CurrentBmk - PrevBmk 'Number of bookmarks to be made (+/-)
                Select Case N% 'Set step direction for/next routine
                        Case Is < 0
                                M% = 1 'Step forward
                        Case Is = 0
                                Exit Sub 'Only 1 selected
                        Case Is > 0
                                M% = -1 'Step reverse
                End Select
                For N% = N% To -M% Step M%
                        DataGrid1.SelBookmarks.Add DataGrid1.GetBookmark(-N%)
                        Debug.Print DataGrid1.SelBookmarks(DataGrid1.SelBookmarks.Count - 1)
                Next N%
        End If
End Sub


Viewing all articles
Browse latest Browse all 1448

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>