Control.GiveFeedback Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre durante uma operação de arrasto.
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 seguinte demonstra uma operação de arrastar e largar entre dois ListBox controlos. O exemplo chama o DoDragDrop método quando a ação de arrasto começa. A ação de arrastar começa se o rato se tiver movido mais do que SystemInformation.DragSize a partir da posição do rato durante o MouseDown evento. O IndexFromPoint método é usado para determinar o índice do item a arrastar durante o MouseDown evento.
O exemplo também demonstra o uso de cursores personalizados para a operação de arrastar e largar. O exemplo exige que existam dois ficheiros cursor, 3dwarro.cur e 3dwno.cur, no diretório da aplicação, para os cursores personalizados de arrastar e sem largar, respetivamente. Os cursores personalizados serão usados se estiver UseCustomCursorsCheckCheckBox marcado. Os cursores personalizados estão definidos no GiveFeedback gestor de eventos.
O estado do teclado é avaliado no DragOver handler de eventos para a direita ListBox, para determinar qual será a operação de arrasto com base no estado das teclas SHIFT, CTRL, ALT ou CTRL+ALT. A localização ListBox onde a queda ocorreria também é determinada durante o DragOver evento. Se os dados a eliminar não forem um String, então o DragEventArgs.Effect é definido como None em DragDropEffects. Finalmente, o estado da queda é apresentado no DropLocationLabelLabelarquivo .
Os dados a deixar cair para a direita ListBox são determinados no DragDrop handler de eventos e o String valor é adicionado no local apropriado no ListBox. Se a operação de arrastar sair dos limites do formulário, então a operação de arrastar e largar é cancelada no QueryContinueDrag tratador de eventos.
Este excerto de código demonstra o uso do GiveFeedback evento. Veja o DoDragDrop método para o exemplo completo do código.
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
Observações
O GiveFeedback evento é ativado quando uma operação de arrastar e largar é iniciada. Com o GiveFeedback evento, a origem de um evento de arrastar pode modificar a aparência do ponteiro do rato para dar ao utilizador feedback visual durante uma operação de arrastar e largar.
O que se segue descreve como e quando são surgidos eventos relacionados com operações de arrastar e largar.
O DoDragDrop método determina o controlo sob a localização atual do cursor. Depois verifica se o controlo é um alvo válido para a queda.
Se o controlo for um alvo válido para largar, 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 registadas.
Se o utilizador sair de uma janela, o DragLeave evento é elevado.
Se o rato introduzir outro controlo, o DragEnter para esse controlo é elevado.
Se o rato se mover mas permanecer dentro do mesmo controlo, 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
Continueevento é 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.Note
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-to-data sobre a posição do rato.
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.
Para obter mais informações sobre como manipular eventos, consulte Manipulando e gerando eventos.