2012年6月2日 星期六

DataGridView 拖曳至 ListBox 中

參考引用
---
 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 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(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

沒有留言:

張貼留言