having trouble with drag-n-drop of multiple items

D

Dan Morrow

I'm having trouble handling drag-n-drop of rows from a DataGridView.

The SelectionMode is FullRowSelect, so when I click, the whole row gets
selected, not just cells.

What I'd like to do is select rows 1, 3 and 5 (by control-clicking) and
then click one more time, and drag all three rows.

The problem that occurs is that when I do that last click (to perform
the drag) all the rows unhilite, and only the row that I clicked on
stays hilited. This is not desirable behavior, obviously.

I'd really like my DataGridView to do drags the same way that Outlook or
Windows Explorer (or any program that has a list of things like this).
But I can't seem to find the right way to do this.

If I'm just dragging one row, then this works fine, but I need to
support dragging multiple rows.

Thanks for any help in this matter,
-Dan.

P.S. - I've been a programmer for many years, but I'm a relative newbie
to VB.
 
C

ClayB

Try deriving the DataGridView and overriding OnMouseDown to start your
drag if you are over a seelcted row.

Public Class MyDataGridView
Inherits DataGridView

Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
Dim hti As HitTestInfo = Me.HitTest(e.X, e.Y)
If Me.SelectedRows.Contains(Me.Rows(hti.RowIndex)) Then
'Not calling the baseclass prevents unselecting the selected
rows
'Start your drag here
Else
MyBase.OnMouseDown(e)
End If
End Sub 'OnMouseDown
End Class 'MyDataGridView

==============================
Clay Burch
Syncfusion, Inc.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top