none
DataGridView und Drag&Drop RRS feed

  • Frage

  • Hallo Leute,
    ich habe 2 DGV's.
    Mittels Drag&Drop kann ich eine Row (Objekt) von DGV1 in DGV2 verschieben.
    Ich kann auch eine Row in DGV2 überschreiben. Soweit so gut.

    Nun brauche ich aber eine Prüfung, ob die Row (das Objekt) in DGV2 überschrieben werden darf.
    Der Datentyp von Quelle und Ziel ist der gleiche. Die Prüfung hängt also von bestimmten Werten des Objektes ab, ob überschrieben werden darf.
    Wie kann ich nun diese Werte im DragEnter-Event vergleichen?

        Private Sub DGV2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DGV2.DragEnter
    
            'Kopieren ist erlaubt, wenn Daten vorhanden sind und QuellObjekt.Wert und ZielObjekt.Wert übereinstimmt
            'jedoch fehlt mir im DragEnter-Event der gesuchteIndex, um an das zu überschreibende Objekt zu gelangen
    
            If e.Data.GetDataPresent(GetType(cTest)) AndAlso CType(e.Data.GetData(GetType(cTest)), cTest).Wert = CType(DGV2.Rows(gesuchterIndex).DataBoundItem, cTest).Wert Then
                e.Effect = DragDropEffects.Copy
            Else
                e.Effect = DragDropEffects.None
            End If
    
        End Sub

    Die untenstehende Auswertung über HitTest kann ich leider auch nicht verwenden, weil beim Ziehen mittels Drag&Drop bei gedrückter Maustaste auch das MouseMove-Event im DGV2 nicht feuert.

    Dim info As DataGridView.HitTestInfo = DGV2.HitTest(e.X, e.Y)
    
    

    Vielen Dank im Voraus
    Christian Tauschek


    Christian Tauschek


    Donnerstag, 13. Februar 2014 17:52

Alle Antworten