拖放数据操作:从DataGridView拖放数据到ListBox中。

来源:互联网 发布:mac装双系统多少钱 编辑:程序博客网 时间:2024/04/28 17:33

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

 

 

界面中要一个DataGridView1, ListBox1 ,两个Button。

代码如下:

Public Class FrmDvDrag

    
Private Sub FrmDvDrag_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
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(ByVal sender As ObjectByVal 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(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(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(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        
Me.ListBox1.Items.Clear()
    
End Sub


    
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
Me.Close()
    
End Sub

End Class