如何防止datagridview中的“self”拖放? [英] How to I prevent 'self' drag and drop in a datagridview?

查看:146
本文介绍了如何防止datagridview中的“self”拖放?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在两个datagridviews之间实现拖放功能。这样做有一个例外:可以在同一个datagridview中拖放。这会导致重复的行。我想限制功能,以便我只能从一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆