Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Drag and Drop problem between forms

$
0
0
Hi all,

I have a class in which I dim a new form and listview. The purpose is to list stock items and allows the user to select an entry. I have added the addhandler itemdrag and its relevant code


 AddHandler lvw.ItemDrag, AddressOf lvw_ItemDrag

 Private Sub lvw_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs)
        Dim myItem As New ListViewItem
        Dim myItems(sender.SelectedItems.Count - 1) As ListViewItem
        Dim i As Integer = 0
        ' Loop though the SelectedItems collection for the source.
        For Each myItem In sender.SelectedItems
            ' Add the ListViewItem to the array of ListViewItems.
            myItems(i) = myItem
            i = i + 1
        Next
        ' Create a DataObject containg the array of ListViewItems.
        sender.DoDragDrop(New DataObject("System.Windows.Forms.ListViewItem()", myItems), DragDropEffects.Copy)
    End Sub




When running the lvw event is activated and sets-up the dataobject (the cursor changes during the drag process) but the target Txt_Part events in the second form do not fire. The property 'allowdrop' is set to true.


 Private Sub Txt_Part_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Txt_Part.DragEnter
        ' Check for the custom DataFormat ListViewItem array.
        If e.Data.GetDataPresent("System.Windows.Forms.ListViewItem()") Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub

    Private Sub Txt_Part_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Txt_Part.DragDrop
            Dim y As Integer = e.Y
            Dim x As Integer = e.X
            Dim myItem As New ListViewItem
            Dim myItems() As ListViewItem = e.Data.GetData("System.Windows.Forms.ListViewItem()")
            For Each myItem In myItems
                Txt_Part.Text = myItem.Text
            Next
            myItem = Nothing
            myItems = Nothing
           End Sub



This code works fine where both forms are generated through the designer. Is there something special I need to set when I create the lvw object at run time. It appears to simply not 'see' the 'other' form.

Thanks.

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>