Control.GiveFeedback Evento

Definição

Ocorre durante uma operação de arrastar.

public:
 event System::Windows::Forms::GiveFeedbackEventHandler ^ GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler? GiveFeedback;
member this.GiveFeedback : System.Windows.Forms.GiveFeedbackEventHandler 
Public Custom Event GiveFeedback As GiveFeedbackEventHandler 

Tipo de evento

Exemplos

O exemplo de código a seguir demonstra uma operação de arrastar e soltar entre dois ListBox controles. O exemplo chama o DoDragDrop método quando a ação de arrastar é iniciada. A ação de arrastar será iniciada se o mouse tiver se movido mais do que SystemInformation.DragSize do local do mouse durante o MouseDown evento. O IndexFromPoint método é usado para determinar o índice do item a ser arrastado durante o MouseDown evento.

O exemplo também demonstra o uso de cursores personalizados para a operação de arrastar e soltar. O exemplo requer que dois arquivos de cursor, 3dwarro.cur e 3dwno.cur, existam no diretório do aplicativo, para os cursores de arrastar e sem soltar personalizados, respectivamente. Os cursores personalizados serão usados se o UseCustomCursorsCheckCheckBox for verificado. Os cursores personalizados são definidos no GiveFeedback manipulador de eventos.

O estado do teclado é avaliado no DragOver manipulador de eventos à direita ListBoxpara determinar qual operação de arrastar será baseada no estado das teclas SHIFT, CTRL, ALT ou CTRL+ALT. O local no qual ListBox a queda ocorreria também é determinado durante o DragOver evento. Se os dados a serem suspensos não forem um String, o DragEventArgs.Effect será definido None como em DragDropEffects. Por fim, o status da lista suspensa é exibido no DropLocationLabelLabel.

Os dados a serem suspensos para a direita ListBox são determinados no DragDrop manipulador de eventos e o String valor é adicionado no local apropriado no ListBox. Se a operação de arrastar se mover para fora dos limites do formulário, a operação de arrastar e soltar será cancelada no QueryContinueDrag manipulador de eventos.

Este trecho de código demonstra o uso do GiveFeedback evento. Consulte o DoDragDrop método para obter o exemplo de código completo.

void ListDragSource_GiveFeedback( Object^ /*sender*/, System::Windows::Forms::GiveFeedbackEventArgs^ e )
{
   // Use custom cursors if the check box is checked.
   if ( UseCustomCursorsCheck->Checked )
   {
      // Sets the custom cursor based upon the effect.
      e->UseDefaultCursors = false;
      if ( (e->Effect & DragDropEffects::Move) == DragDropEffects::Move )
                  ::Cursor::Current = MyNormalCursor;
      else
                  ::Cursor::Current = MyNoDropCursor;
   }
}
private void ListDragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    // Use custom cursors if the check box is checked.
    if (UseCustomCursorsCheck.Checked)
    {
        // Sets the custom cursor based upon the effect.
        e.UseDefaultCursors = false;
        if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
            Cursor.Current = MyNormalCursor;
        else
            Cursor.Current = MyNoDropCursor;
    }
}
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback
    ' Use custom cursors if the check box is checked.
    If (UseCustomCursorsCheck.Checked) Then

        ' Set the custom cursor based upon the effect.
        e.UseDefaultCursors = False
        If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
            Cursor.Current = MyNormalCursor
        Else
            Cursor.Current = MyNoDropCursor
        End If
    End If

End Sub

Comentários

O evento GiveFeedback é acionado quando uma operação do tipo "arrastar-e-soltar" é iniciada. Com o evento GiveFeedback, a fonte de um evento de arrastar pode modificar a aparência do ponteiro do mouse para dar ao usuário feedback visual durante uma operação do tipo "arrastar e soltar".

A seguir, descreve como e quando eventos relacionados a operações de arrastar e soltar são gerados.

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

Se o controle 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.

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

  • Se o mouse entrar em outro controle, o DragEnter para esse controle será gerado.

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

Se houver uma alteração no estado do botão de teclado ou mouse, o QueryContinueDrag evento será acionado e determinará se deseja continuar a 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 .

    Observaçã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.

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

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

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

Aplica-se a

Confira também