Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Evento ToolStripItem.DragEnter

 

Data di pubblicazione: ottobre 2016

Si verifica quando l'utente trascina un elemento nell'area client di questo elemento.

Spazio dei nomi:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

[BrowsableAttribute(false)]
public event DragEventHandler DragEnter

The E:System.Windows.Forms.ToolStripItem.DragEnter event is raised when the user first drags the mouse cursor over the item during a drag-and-drop operation.

The following remarks describe how and when events related to drag-and-drop operations are raised.

The M:System.Windows.Forms.ToolStripItem.DoDragDrop(System.Object,System.Windows.Forms.DragDropEffects) method determines the item under the current cursor location. It then checks to see if the item is a valid drop target.

If the item is a valid drop target, the E:System.Windows.Forms.ToolStripItem.GiveFeedback event is raised with the drag-and-drop effect specified. For a list of drag-and-drop effects, see the T:System.Windows.Forms.DragDropEffects enumeration.

Changes in the mouse cursor position, keyboard state, and mouse button state are tracked in the following manner:

  • If the user moves out of a window, the E:System.Windows.Forms.ToolStripItem.DragLeave event is raised.

  • If the mouse enters another item, the E:System.Windows.Forms.ToolStripItem.DragEnter for that control is raised.

  • If the mouse moves but stays within the same item, the E:System.Windows.Forms.ToolStripItem.DragOver event is raised.

If there is a change in the keyboard or mouse button state, the E:System.Windows.Forms.ToolStripItem.QueryContinueDrag event is raised and determines whether to continue the drag, to drop the data, or to cancel the operation based on the value of the P:System.Windows.Forms.QueryContinueDragEventArgs.Action property of the event's T:System.Windows.Forms.QueryContinueDragEventArgs.

If the value of T:System.Windows.Forms.DragAction is F:System.Windows.Forms.DragAction.Continue, the E:System.Windows.Forms.ToolStripItem.DragOver event is raised to continue the operation and the E:System.Windows.Forms.ToolStripItem.GiveFeedback event is raised with the new effect so appropriate visual feedback can be set. For a list of valid drop effects, see the T:System.Windows.Forms.DragDropEffects enumeration.

The E:System.Windows.Forms.ToolStripItem.DragOver and E:System.Windows.Forms.ToolStripItem.GiveFeedback events are paired so that as the mouse moves across the drop target, the user is given the most up-to-date feedback on the mouse's position, as follows:

  • If the value of T:System.Windows.Forms.DragAction is F:System.Windows.Forms.DragAction.Drop, the drop effect value is returned to the source, so the source application can perform the appropriate operation on the source data; for example, cut the data if the operation was a move.

  • If the value of T:System.Windows.Forms.DragAction is F:System.Windows.Forms.DragAction.Cancel, the E:System.Windows.Forms.ToolStripItem.DragLeave event is raised.

System_CAPS_noteNota

The P:System.Windows.Forms.DragEventArgs.X and P:System.Windows.Forms.DragEventArgs.Y properties of the T:System.Windows.Forms.DragEventArgs are in screen coordinates, not client coordinates.

For more information about handling events, see Handling and Raising Events.

The following code example shows how to convert the P:System.Windows.Forms.DragEventArgs.X and P:System.Windows.Forms.DragEventArgs.Y properties to a client T:System.Drawing.Point. This code example is part of a larger example provided for the T:System.Windows.Forms.ToolStripRenderer class.

// This method defines the DragOver event behavior. 
protected override void OnDragOver(DragEventArgs dea)
{
    base.OnDragOver(dea);

    // Get the ToolStripButton control 
    // at the given mouse position.
    Point p = new Point(dea.X, dea.Y);
    ToolStripButton item = this.GetItemAt(
        this.PointToClient(p)) as ToolStripButton;

    // If the ToolStripButton control is the empty cell,
    // indicate that the move operation is valid.
    if( item == this.emptyCellButton )
    {
        // Set the drag operation to indicate a valid move.
        dea.Effect = DragDropEffects.Move;
    }
}

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: