VB Migration Partner

KNOWLEDGE BASE - Forms and controls


Previous | Index | Next 

[PRB] Drag-and-drop operations inside a ListBox control may deliver fake results

When using a drag-and-drop operation in migrated VB.NET apps to implement a move or copy operation between two ListBox controls, the element being copied or moved is the last element “touched” by the mouse, instead of the control over which the drag operation begins.

Let’s assume that the drag operation is started by the following VB6 code:

 

Private Sub List1_MouseMove(ByRef Button As Short, ByRef Shift As Short, ByRef X As Single, ByRef Y As Single) 
	If Button = VBRUN.MouseButtonConstants.vbLeftButton And List1.ListIndex >= 0 Then
      	List1.Drag(1)
      End If
End Sub

There are two ways to work around this issue:

  1. Use the right mouse button to start the drag operation:
    Private Sub List1_MouseMove(ByRef Button As Short, ByRef Shift As Short, ByRef X As Single, ByRef Y As Single) 
    	If Button = VBRUN.MouseButtonConstants.vbRightButton And List1.ListIndex >= 0 Then
          	List1.Drag(1)
          End If
    End Sub
  2. Set the ListBox’s Capture property to False immediately after the drag operation has started:
    Private Sub List1_MouseMove(ByRef Button As Short, ByRef Shift As Short, ByRef X As Single, ByRef Y As Single) 
    	If Button = VBRUN.MouseButtonConstants.vbLeftButton And List1.ListIndex >= 0 Then
          	List1.Drag(1)
    	List1.Capture = False
          End If
    End Sub
Previous | Index | Next 




Follow Francesco Balena on VB6 migration’s group on

LinkedIn





Read Microsoft Corp’s official case study of a VB6 conversion using VB Migration Partner.




Code Architects and its partners offers remote and onsite migration services.

More details




Subscribe to our free newsletter for useful VB6 migration tips and techniques.

newsletter



To learn more about your VB6 applications, run VB6 Analyzer on your source code and send us the generated text file. You will receive a detailed report about your VB6 applications and how VB Migration Partner can help you to quickly and effectively migrate it to .NET.

Get free advice



A fully-working, time-limited Trial Edition of VB Migration Partner allows you to test it against your actual code

Get the Trial




The price of VB Migration Partner depends on the size of the VB6 application, the type of license, and other factors

Request a quote




Migrating a VB6 application in 10 easy steps

Comparing VB Migration Partner with Upgrade Wizard

Migration tools: Feature Comparison Table

All whitepapers