ToolStripItem.DragEnter Evento

Definição

Ocorre quando o utilizador arrasta um item para a área cliente desse item.

public:
 event System::Windows::Forms::DragEventHandler ^ DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler? DragEnter;
[<System.ComponentModel.Browsable(false)>]
member this.DragEnter : System.Windows.Forms.DragEventHandler 
Public Custom Event DragEnter As DragEventHandler 

Tipo de Evento

Atributos

Exemplos

O seguinte exemplo de código mostra como converter as X propriedades e Y para um cliente Point. Este exemplo de código faz parte de um exemplo maior fornecido para a ToolStripRenderer classe.

// 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;
    }
}
' This method defines the DragOver event behavior. 
Protected Overrides Sub OnDragOver(dea As DragEventArgs)
   MyBase.OnDragOver(dea)
   
   ' Get the ToolStripButton control 
   ' at the given mouse position.
   Dim p As New Point(dea.X, dea.Y)
   Dim item As ToolStripButton = CType(Me.GetItemAt(Me.PointToClient(p)), ToolStripButton)
   
   
   ' If the ToolStripButton control is the empty cell,
   ' indicate that the move operation is valid.
     If item Is Me.emptyCellButton Then
         ' Set the drag operation to indicate a valid move.
         dea.Effect = DragDropEffects.Move
     End If
 End Sub

Observações

O DragEnter evento é ativado quando o utilizador arrasta o cursor do rato sobre o item durante uma operação de arrastar e largar.

As observações seguintes descrevem como e quando eventos relacionados com operações de arrastar e largar são levantados.

O DoDragDrop método determina o item sob a localização atual do cursor. Depois verifica se o item é um alvo válido para drop.

Se o item for um alvo válido de largada, o GiveFeedback evento é levantado com o efeito de arrastar e largar especificado. Para uma lista de efeitos de arrastar e largar, consulte a DragDropEffects enumeração.

As alterações na posição do cursor do rato, no estado do teclado e no estado dos botões do rato são acompanhadas da seguinte forma:

  • Se o utilizador sair de uma janela, o DragLeave evento é elevado.

  • Se o rato introduzir outro item, o DragEnter para esse controlo é elevado.

  • Se o rato se mover mas permanecer dentro do mesmo item, o DragOver evento é elevado.

Se houver uma alteração no estado do teclado ou do rato, o QueryContinueDrag evento é ativado e determina se continua a arrastar, se se largam os dados ou se cancelam a operação com base no valor Action da propriedade do QueryContinueDragEventArgsevento .

Se o valor de DragAction for , o Continue evento é elevado para continuar a operação e o DragOver evento é elevado com o novo efeito para que o feedback visual adequado GiveFeedbackpossa ser estabelecido. Para uma lista de efeitos de queda válidos, consulte a DragDropEffects enumeração.

Os DragOver eventos e GiveFeedback são emparelhados de modo que, à medida que o rato se move pelo alvo de queda, o utilizador receba o feedback de maior up-todata sobre a posição do rato, da seguinte forma:

  • Se o valor de DragAction for Drop, o valor do efeito de queda é devolvido à fonte, para que a aplicação fonte possa realizar a operação apropriada sobre os dados fonte; por exemplo, cortar os dados se a operação for uma mudança.

  • Se o valor de DragAction for Cancel, o DragLeave evento é elevado.

Note

As X propriedades e Y do DragEventArgs estão nas coordenadas do ecrã, não nas coordenadas do cliente.

Para obter mais informações sobre como manipular eventos, consulte Manipulando e gerando eventos.

Aplica-se a