gpt4 book ai didi

vb.net - 在 vb.net 中的 datagridview 中拖放

转载 作者:行者123 更新时间:2023-12-02 08:50:05 25 4
gpt4 key购买 nike

我在代码中使用了两个 Datagridview,我将内容从 Me.datagridview2 拖放到 Me.datagridview1 上。此过程是成功的。但是,一旦我单击除删除内容单元格之外的单元格,删除的内容就会消失。这是我的代码

 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



有以下疑问
1.为什么掉落的内容消失了。
2.每当我们开始在datagridview上编辑时,下面就会自动添加一行。为什么当我将内容放入 datagridview 时它没有被添加?

请帮助我。

最佳答案

实际上,我只是找到了自己问题的替代方案。就是这样。

  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
dragseldet.Tables(0).Rows.Add("", r.Cells(0).Value, r.Cells(1).Value, r.Cells(2).Value, r.Cells(3).Value, 0, 0)
dragseldet.AcceptChanges()
'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


我不是将 r 行中的内容复制到 Me.DataGridview. 所有单元格,而是直接将 r 行添加到名为 的数据源中Dragsaldet 。这对我来说很有效。

关于vb.net - 在 vb.net 中的 datagridview 中拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26917567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com