Visual Basic 6 - What Is Drag And Drop
1.1 What is Drag & Drop
In computer graphical user interface drag & drop
is the action of clicking on an object (virtual object on
screen) and dragging it to a different location (on screen)
The basic sequence involved in drag & drop is
Press & hold down, the button on the mouse or
other pointing device to "grab" the object.
"Drag" the object /cursor/ pointing device to the
"Drop" the object by releasing the button
The drag-n-drop is programmatically done and it is widely
used in creating objective type questions. Both VB6 and
VB.NET support a rich variety of drag drop functions as
detailed in the following three examples.
An example of a simple drag and drop sequence is given
below. Fig1 contains two columns: First column contains
animal names, and the second column contains small boxes
where user needs to drop the relevant images.
Animal NameBoxes where relevant images are dropped
Fig 1. Images before being dragged to the target
Fig 2. gives after the images being dragged and dropped to
the correct places.
Fig 2. Images after being dragged to the target
1.2 The Basic Concepts of Drag and Drop
A drag-and-drop operation involves a source object and a
target object. The source object can be any Visual Basic control,
and the target object can be any control or the form itself.
The operation has three parts:
The drag operation begins when the user presses the
mouse button as the pointer is over a control that has been
enabled as a drag-and-drop source.
The operation continues as the pointer is moved, with
the left mouse button still down, over other controls or
the form itself. A control receives notification, via the
Drag Over event, that it is being "dragged over"
and can signal whether the data can be dropped on it by
changing the appearance of the mouse pointer.
The operation ends when the user releases the mouse
button. A control is notified by the Drag Drop event that
it has been dropped on.
1.3 Properties of Drag & Drop
Controls have two properties that are related to drag-and-drop:
DragMode. Set to vbManual (value = 0, the default) for
manual drag-and-drop, which requires use of the Drag method
to initiate a drag-and-drop operation.
DragIcon. Specifies the mouse pointer that is displayed
while the control is being dragged. The default setting
displays an arrow with a rectangle. For a custom mouse icon,
set this property at design-time to a .ICO or .CUR file,
or at run-time use the LoadPicture function to load an .ICO
Executing the Drag method on the source control is required
only when it's Drag mode property is set to vbManual. The syntax
for this method is:
Set action to vbBeginDrag (value = 1) to initiate
a drag operation. This will usually be done in the
source control's MouseDown event procedure.
You can also call the Drag method with action set to
vbCancel or vbEndDrag (values 0 and 2 respectively) to cancel
an ongoing drag-and-drop operation or to end a drag-and-drop
Controls have two events that are related to drag-and-drop.
DragOver is used to detect when an object is dragged over a
control, and DragDrop is used to detect when an object is dropped
on a control:
Target_DragOver (source As Control, x As Single, y
As Single, State As Integer)
target_DragDrop(Source as Control,X as Single,Y as
Target identifies the target object (the one being
dragged over or dropped on). It can be a form, an MDI
form, or a control. If the target is a control that is part
of a control array, these event procedures will have an additional
argument that specifies the Index property of the control within
the control array.
Source identifies the source control (where the drag-drop
X and y gives the horizontal and vertical position
of the mouse pointer with respect to object. These values
are always expressed according to the object's coordinate system
State specifies the relationship between the mouse
pointer and the target, as follows:
A value of 0 indicates the pointer just entered the
A value of 1 indicates the pointer is leaving the target.
A value of 2 indicates that the pointer is moving within
When a source control is dragged and dropped, here's what
When the mouse pointer leaves the source control, the
parent form receives a single Drag Over event with the State
argument equal to 0.
As the pointer moves over the form the form receives
multiple Drag over events with the State argument equal
When the source is dragged over another control on the
form, the form receives a Drag Over event with the State
argument equal to 1 (signaling that the pointer has left
the form), and the control over which the source was just
dragged receives a DragOver event with the State argument
equal to 0 (signaling that the pointer has entered the Form).
When the control is dropped, the object it is currently
over receives a DragDrop event.
1.4 System Requirements
The example codes given in the tutorial runs on any
Windows computer running XP, 2000, or Vista. Project is done
in Visual Basic 6 as front end and Microsoft Access2000 as back
end. The tutorial is primarily intended for use by VB programmers,
and you may be requiring VB6 software installed on your computer
to run the program.