Partilhar via


ToolStripItem.DragEnter Evento

Definição

Ocorre quando o usuário arrasta um item para a área de 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 exemplo de código a seguir mostra como converter as X propriedades e Y em 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

Comentários

O DragEnter evento é gerado quando o usuário arrasta pela primeira vez o cursor do mouse sobre o item durante uma operação de arrastar e soltar.

Os comentários a seguir descrevem como e quando eventos relacionados a operações de arrastar e soltar são gerados.

O DoDragDrop método determina o item sob o local atual do cursor. Em seguida, ele verifica se o item é um destino de soltar válido.

Se o item for um destino de soltar válido, o GiveFeedback evento será gerado com o efeito de arrastar e soltar especificado. Para obter uma lista de efeitos de arrastar e soltar, consulte a DragDropEffects enumeração .

As alterações na posição do cursor do mouse, no estado do teclado e no estado do botão do mouse são controladas da seguinte maneira:

  • Se o usuário sair de uma janela, o DragLeave evento será gerado.

  • Se o mouse inserir outro item, o DragEnter para esse controle será gerado.

  • Se o mouse se mover, mas permanecer dentro do mesmo item, o DragOver evento será gerado.

Se houver uma alteração no estado do botão do teclado ou do mouse, o QueryContinueDrag evento será acionado e determinará se deseja continuar o arrastar, remover os dados ou cancelar a operação com base no valor da Action propriedade do QueryContinueDragEventArgsevento.

Se o valor de DragAction for Continue, o DragOver evento será gerado para continuar a operação e o GiveFeedback evento será gerado com o novo efeito para que os comentários visuais apropriados possam ser definidos. Para obter uma lista de efeitos suspensos válidos, consulte a DragDropEffects enumeração .

Os DragOver eventos e GiveFeedback são emparelhados para que, à medida que o mouse se move pelo destino de soltar, o usuário recebe os comentários mais atualizados sobre a posição do mouse, da seguinte maneira:

  • Se o valor de DragAction for Drop, o valor do efeito de queda será retornado à origem, para que o aplicativo de origem possa executar a operação apropriada nos dados de origem; por exemplo, recorte os dados se a operação for uma movimentação.

  • Se o valor de DragAction for Cancel, o DragLeave evento será gerado.

Observação

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

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

Aplica-se a