Hallå! Hmmm...det var inte alls svårt!drag drop inom en datagrid
Jag har en datagrid där jag vill använda drag and drop för att ändra den inbördes ordningen i gridden.
jag har skapat DragEnter, Drag Leave och DragDrop events, men problemet är att jag ju måste kolla vart i "sig själv" dvs datagridden, som jag släpper raden.
Alltså, hur håller jag koll på vart muspekaren är i förhållanden till datagridden.
Alla rader är lika höga så det borde gå att kolla detta...
Vad detta begripligt??
tackarSv: drag drop inom en datagrid
Private Sub DGUtskick_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DGUtskick.DragDrop
Dim arr As New ArrayList
Dim a As artikelrad 'Mitt objekt för en rad i datagrid:en
'Här är lösningen på mitt problem
'DGutskick är namnet på min datagrid
Dim hitTest As DataGrid.HitTestInfo
pointDragEnd = DGUtskick.PointToClient(New Point(e.X, e.Y))
hitTest = DGUtskick.HitTest(pointDragEnd)
arr = DGUtskick.DataSource
a = arr.Item(selectedRow) 'selectedRow är radnumret på mitt dragobject (rad), satt tidigare
'ta bort raden ur min datagrid
arr.RemoveAt(selectedRow)
'Lägg till den på den nya platsen (drop)
arr.Insert(hitTest.Row, a)
'Här sätter jag ordningen på alla rader. har ett fält som anger ordning på alla rader
setOrder(arr)
'Läser tillbaka den nya arraylisten
DGUtskick.DataSource = arr
DGUtskick.Select(hitTest.Row)
DGUtskick.Refresh()
End Sub
...åsså var det problemet inte ett problem längre...
Hoppas att ngn har nytta av detta!
/Bix