如何防止datagridview中的“self”拖放? [英] How to I prevent 'self' drag and drop in a datagridview?
问题描述
我使用的代码如下: p>
Private Sub dgvFMAvailable_MouseMove(ByVal sender As System.Object,ByVal e As System.Windows.Forms.MouseEventArgs)处理dgvFMAvailable.MouseMove
如果e.Button = Windows.Forms.MouseButtons.Left然后
Me.dgvFMAvailable.DoDragDrop(Me.dgvFMAvailable.SelectedRows,DragDropEffects.Move)
如果
End Sub
和
Private Sub dgvFMSelected_DragDrop(ByVal sender As System.Object,ByVal e As System.Windows.Forms.DragEventArgs)处理dgvFMSelected.DragDrop
尝试
我。 SelectFM(CType(e.Data.GetData(DataGridViewSelectedRowCollection)),
最后
e.Effect = DragDropEffects.None
结束尝试
End Sub
只是一个快速的想法。如果当你开始拖动你拥有原始网格的名称怎么办?当你进行下拉检查时,如果它们是相同的对象,那么不允许下降。
I'm implementing drag and drop functionality between two datagridviews. This works as intended with one exception: it is possible to drag and drop within the same datagridview. This results in duplicated rows. I want to limit the functionality so that I can only drag from one datagridview to another. Does anyone know how this can be achieved? I'm guessing some kind of hit test is required but I'm not sure how to implement this...
The code I am using is as follows:
Private Sub dgvFMAvailable_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dgvFMAvailable.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.dgvFMAvailable.DoDragDrop(Me.dgvFMAvailable.SelectedRows, DragDropEffects.Move)
End If
End Sub
and
Private Sub dgvFMSelected_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles dgvFMSelected.DragDrop
Try
Me.SelectFM(CType(e.Data.GetData(GetType(DataGridViewSelectedRowCollection)), DataGridViewSelectedRowCollection))
Finally
e.Effect = DragDropEffects.None
End Try
End Sub
Just a quick idea. What if when you start the drag you hold the name of the origin grid. When you do the drop check the name, if they are the same object then don't allow the drop.
这篇关于如何防止datagridview中的“self”拖放?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!