从DataGridView拖放选中的行到ListBox中。项目中要用到拖放操作,在网上找不到,不过研究了许多别人的代码。自己写的简单代码。

界面中要一个DataGridView1, ListBox1 ,两个Button。
代码如下:

Public Class FrmDvDragClass FrmDvDrag

Me.DataGridView1.Columns.Add("code", "code")
Me.DataGridView1.Columns.Add("name", "name")
Me.DataGridView1.AllowDrop = True
Me.ListBox1.AllowDrop = True
Me.DataGridView1.Rows.Add("1", "23423")
Me.DataGridView1.Rows.Add("2", "asaer")
End Sub

Private Sub DataGridView1_MouseDown()Sub DataGridView1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left And Me.DataGridView1.SelectedRows.Count > 0 Then
Dim SelRow As DataGridViewSelectedRowCollection
SelRow = Me.DataGridView1.SelectedRows
Me.DataGridView1.DoDragDrop(SelRow, DragDropEffects.Copy)
End If
End Sub

Private Sub ListBox1_DragEnter()Sub ListBox1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(GetType(DataGridViewSelectedRowCollection)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub

Private Sub ListBox1_DragDrop()Sub ListBox1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
If e.Data.GetDataPresent(GetType(DataGridViewSelectedRowCollection)) Then
Dim dr As DataGridViewSelectedRowCollection
dr = e.Data.GetData(GetType(DataGridViewSelectedRowCollection))
For i As Integer = 0 To dr.Count - 1
Me.ListBox1.Items.Add(dr.Item(i).Cells(0).Value)
Next
End If
End Sub

Private Sub Button2_Click()Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.ListBox1.Items.Clear()
End Sub

Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
本文介绍了一个简单的应用程序案例,演示如何将DataGridView中的选中行通过拖放操作转移到ListBox中。该过程涉及DataGridView与ListBox的AllowDrop属性设置,以及MouseDown、DragEnter和DragDrop事件的处理。
3021





