Funcionalidade do tipo "arrastar e soltar" nos Windows Forms

O Windows Forms incluem um conjunto de métodos, eventos e classes que implementam o comportamento do tipo "arrastar e soltar". Este tópico fornece uma visão geral do suporte a arrastar e soltar no Windows Forms. Consulte também Operações do tipo "arrastar e soltar" e suporte à área de transferência.

Realizando operações do tipo "arrastar e soltar"

Para executar uma operação de arrastar e soltar, use o DoDragDropControl método da classe. Para obter mais informações sobre como uma operação de arrastar e soltar é executada, consulte DoDragDrop. Para obter o retângulo sobre o qual o ponteiro do mouse deve ser arrastado antes do início de uma operação de arrastar e soltar, use a DragSizeSystemInformation propriedade da classe.

Há duas categorias de eventos em uma operação de arrastar e soltar: os eventos que ocorrem no destino atual da operação do tipo "arrastar e soltar" e eventos que ocorrem na fonte da operação de arrastar e soltar.

Eventos de destino atual

A tabela a seguir mostra os eventos que ocorrem no destino atual de uma operação do tipo "arrastar e soltar".

Evento de mouse Descrição
DragEnter Esse evento ocorre quando um objeto é arrastado para os limites do controle. O manipulador desse evento recebe um argumento do tipo DragEventArgs.
DragOver Esse evento ocorre quando um objeto é arrastado enquanto o ponteiro do mouse está dentro dos limites do controle. O manipulador desse evento recebe um argumento do tipo DragEventArgs.
DragDrop Esse evento ocorre quando uma operação do tipo "arrastar e soltar" é concluída. O manipulador desse evento recebe um argumento do tipo DragEventArgs.
DragLeave Esse evento ocorre quando um objeto é arrastado para fora dos limites do controle. O manipulador desse evento recebe um argumento do tipo EventArgs.

A DragEventArgs classe fornece o local do ponteiro do mouse, o estado atual dos botões do mouse e das teclas modificadoras do teclado, os dados que estão sendo arrastados e os valores que especificam as operações permitidas pela origem do evento drag e DragDropEffects o efeito de soltar de destino para a operação.

Eventos na fonte

A tabela a seguir mostra os eventos que ocorrem na fonte atual de uma operação do tipo "arrastar e soltar".

Evento de mouse Descrição
GiveFeedback Esse evento ocorre durante uma operação de arrastar. Ele fornece uma indicação visual para o usuário que a operação do tipo "arrastar e soltar" está ocorrendo, como uma alteração no ponteiro do mouse. O manipulador desse evento recebe um argumento do tipo GiveFeedbackEventArgs.
QueryContinueDrag Esse evento é gerado durante uma operação do tipo "arrastar e soltar" e permite que a fonte de arrastar determine se a operação do tipo "arrastar e soltar" deve ser cancelada. O manipulador desse evento recebe um argumento do tipo QueryContinueDragEventArgs.

A QueryContinueDragEventArgs classe fornece o estado atual dos botões do mouse e das teclas modificadoras do teclado, um valor especificando se a tecla ESC foi pressionada e um DragAction valor que pode ser definido para especificar se a operação de arrastar e soltar deve continuar.

Confira também