Drag-and-Drop in datagridview in vb.net

Ich bin mit zwei Datagridview in meinem code, ich ziehen Sie Inhalt aus Me.datagridview2 und legen Sie es auf Me.datagridview1.Dieser Prozess erfolgreich ist. Aber sobald ich auf die Zelle andere als die verworfene Inhalt der Zelle, die gelöschte Inhalte verschwinden. Hier ist mein code

 Private Sub DataGridView2_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles DataGridView2.MouseDown
    Try
        If Me.DataGridView2.SelectedRows.Count = 0 Then
            Exit Sub
        End If
        Me.DataGridView2.DoDragDrop(Me.DataGridView2.SelectedRows(0), DragDropEffects.All)
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
End Sub

Private Sub DataGridView1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragDrop
  Try
        Dim r As DataGridViewRow = e.Data.GetData(GetType(DataGridViewRow))
        If Me.DataGridView1.SelectedRows.Count = 0 Then
            Exit Sub
        End If

        Dim i As Integer = Me.DataGridView1.SelectedRows(0).Index
        Me.DataGridView1.Rows(i).Cells(1).Value = r.Cells(0).Value
        Me.DataGridView1.Rows(i).Cells(2).Value = r.Cells(1).Value
        Me.DataGridView1.Rows(i).Cells(3).Value = r.Cells(2).Value
        Me.DataGridView1.Rows(i).Cells(4).Value = r.Cells(3).Value

    Catch ex As Exception
        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
End Sub

Private Sub DataGridView1_DragEnter(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragEnter
    Try
        e.Effect = DragDropEffects.Copy
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
End Sub

Habe folgenden Zweifel,


1. warum die abgelegten Inhalte verschwinden.


2. wenn wir beginnen, Bearbeiten Sie auf "datagridview", eine Zeile automatisch Hinzugefügt unten. Warum es nicht Hinzugefügt wird, wenn ich drop Inhalte in datagridview.?

Bitte helfen Sie mir.

  • Ich bin ein wenig besorgt, wie Sie hinzufügen, dass die Zeile mit Zellen(num).Wert und nicht mit einer for-Schleife in Fall, dass Sie eine Spalte hinzuzufügen in der Zukunft. Es gibt auch die Tatsache, dass du tust .SelectedRows(0).Index, was ist, wenn Sie mehrere Zeilen, die Sie ausgewählt, und Sie möchten, zu ziehen/kopieren?
  • dont Sie möchten, fügen Sie eine neue Zeile für die gelöschten Daten? wie sieht es aus, ersetzen Sie die vorhandenen Inhalte
  • eigentlich bin ich Drag und Drop nur eine Zeile zu einem Zeitpunkt also keine Schleife erforderlich.
  • wenn ich versuche das hinzufügen dieser Zeile gibt es Fehler, die when datagridview is databound, rows cannot be added programmatically.
  • Das ist eins Ihrer Probleme dort dann. Ihr datagridview hat einige Daten schon verbunden/zugeordnet.
  • Also, was soll ich tun @sparkysword, irgendwelche Vorschläge?

InformationsquelleAutor Steve | 2014-11-13
Schreibe einen Kommentar