Starts a drag and drop operation using the specified control as the source.

You can use this method to start drag and drop operations in response to user-defined actions instead of the built-in behavior with string, tree, listbox, and multicolumn listbox controls. For controls other than the string, tree, listbox, and multicolumn listbox, the Start Drag method is the only way to start a drag using this control as a drag source.

You must specify what data to provide during the drag and drop operation. Optionally, you can specify the drag mode, and corresponding default cursor feedback, to reflect whether this drag and drop operation supports moving the data instead of only copying it. During a drag and drop operation, only drag and drop events are available. Mouse events are not available.

If there is already a drag in progress, LabVIEW returns an error. If you pass an empty array for the data parameter, the drag operation does not start and LabVIEW returns an error. If the array of data passed contains duplicate data names or data that conflicts with built-in types, LabVIEW returns an error.

After you use this method, LabVIEW remains in the middle of a drag and drop operation until the user cancels the drag by pressing the <Esc> key or lifting the mouse button, or until a window opens in front of the window that has the source control.

The Drag Data parameter is an array of clusters, each cluster containing a label and corresponding data. Each label must be unique and cannot use the LV_ prefix. Each element of the array must be of the same data type. The Drag Mode parameter specifies the operation of the drag, such as copy, move, or copy and move. If you select copy or move, pressing the <Ctrl> key copies the item.

Parameters

Name Data type Required Description
Drag Data c1dcclst.png Yes
Indicates the LabVIEW or user-defined name that identifies the data type. You cannot use the prefix LV_ on a user-defined data name, because it is reserved for LabVIEW data types. You can use the following built-in LabVIEW data types and names:
LabVIEW Data Type Definition
LV_TEXT String
LV_TREE_TAG String
LV_TREE_ITEMS Array of a cluster containing an array of strings, from left to right, in the item you are dragging, an integer representing the glyph index associated with the item from which you are dragging data, and an integer representing the indent level of the item from which you are dragging.
LV_LISTBOX Cluster containing an array of strings from the row that you are dragging data and an integer representing the glyph index associated with the row from which you are dragging data.
LV_LISTBOX_ITEMS Array of a cluster containing an array of strings, from left to right, in the item you are dragging and an integer representing the glyph index associated with the item from which you are dragging data.
LV_PATH Path
Drag Mode cenum.png No

Specifies the operations that this control supports during the drag, such as copy or move, copy only, move only. If you select copy or move, pressing the <Ctrl> key copies the item. The operations you support control the values that the Results output of the Drag Ended and Drag Source Update events can provide.

For filter events, you can modify this field to change the drag mode when this event is generated.

Remarks

The following table lists the characteristics of this method.

Short Name Start Drag
Data type No return value
Available in Run-Time Engine Yes
Available in Real-Time Operating System No
Settable when the VI is running Yes
Loads the front panel into memory No
Need to authenticate before use No
Loads the block diagram into memory No
Remote access allowed Yes

Examples

Refer to the following example files included with LabVIEW.

  • labview\examples\Structures\Event Structure\Drag and Drop - Initiating a Custom Drag.vi