Partilhar via


Funcionalidade de arrastar e soltar no Windows Forms

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

Executando operações de arrastar e soltar

Para executar uma operação de arrastar e soltar, use o método DoDragDrop da classe Control. 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 que uma operação de arrastar e soltar comece, use a propriedade DragSize da classe SystemInformation.

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

Eventos no alvo atual

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

Evento do mouse Descrição
DragEnter Esse evento ocorre quando um objeto é arrastado para os limites do controle. O manipulador para esse 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 para esse evento recebe um argumento do tipo DragEventArgs.
DragDrop Esse evento ocorre quando uma operação de arrastar e soltar é concluída. O manipulador para esse evento recebe um argumento do tipo DragEventArgs.
DragLeave Esse evento ocorre quando um objeto é arrastado para fora dos limites do controle. O manipulador para esse evento recebe um argumento do tipo EventArgs.

A classe DragEventArgs 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 DragDropEffects valores que especificam as operações permitidas pela origem do evento de arrastar e o efeito de destino para a operação de soltar.

Eventos na fonte

A tabela a seguir mostra os eventos que ocorrem na origem da operação de arrastar e soltar.

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

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

Ver também