GiveFeedbackEventHandler Delegato

Definizione

Rappresenta il metodo che gestisce l'evento GiveFeedback di un oggetto Control.

public delegate void GiveFeedbackEventHandler(System::Object ^ sender, GiveFeedbackEventArgs ^ e);
public delegate void GiveFeedbackEventHandler(object sender, GiveFeedbackEventArgs e);
public delegate void GiveFeedbackEventHandler(object? sender, GiveFeedbackEventArgs e);
type GiveFeedbackEventHandler = delegate of obj * GiveFeedbackEventArgs -> unit
Public Delegate Sub GiveFeedbackEventHandler(sender As Object, e As GiveFeedbackEventArgs)

Parametri

sender
Object

Origine dell'evento.

e
GiveFeedbackEventArgs

Oggetto GiveFeedbackEventArgs che contiene i dati dell'evento.

Esempio

Nell'esempio seguente viene illustrata un'operazione di trascinamento della selezione tra due ListBox controlli. Nell'esempio viene chiamato il DoDragDrop metodo all'avvio dell'azione di trascinamento. L'azione di trascinamento viene avviata se il mouse è stato spostato più che SystemInformation.DragSize dalla posizione del mouse durante l'evento MouseDown . Il IndexFromPoint metodo viene utilizzato per determinare l'indice dell'elemento da trascinare durante l'evento MouseDown .

L'esempio illustra anche l'uso di cursori personalizzati per l'operazione di trascinamento della selezione. Nell'esempio si presuppone che nella directory dell'applicazione esistano due file 3dwarro.cur3dwno.curdi cursore, rispettivamente per i cursori di trascinamento e senza rilascio personalizzati. I cursori personalizzati verranno utilizzati se è UseCustomCursorsCheckCheckBox selezionato . I cursori personalizzati vengono impostati nel GiveFeedback gestore eventi.

Lo stato della tastiera viene valutato nel DragOver gestore eventi per la destra ListBox, per determinare quale sarà l'operazione di trascinamento in base allo stato dei tasti MAIUSC, CTRL, ALT o CTRL+ALT. La posizione in ListBox cui si verifica l'eliminazione viene determinata anche durante l'evento DragOver . Se i dati da eliminare non sono , Stringl'oggetto DragEventArgs.Effect viene impostato su DragDropEffects.None. Infine, lo stato dell'eliminazione viene visualizzato in DropLocationLabelLabel.

I dati da eliminare per il diritto ListBox sono determinati nel DragDrop gestore eventi e il String valore viene aggiunto nella posizione appropriata in ListBox. Se l'operazione di trascinamento si sposta all'esterno dei limiti del form, l'operazione di trascinamento della selezione viene annullata nel QueryContinueDrag gestore eventi.

Questo estratto di codice illustra l'uso del GiveFeedbackEventHandler delegato con l'evento GiveFeedback . Vedere il DoDragDrop metodo per l'esempio di codice 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

Commenti

Quando si crea un delegato GiveFeedbackEventHandler, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non venga rimosso il delegato. Per altre informazioni sulla gestione degli eventi con delegati, vedere Gestione e generazione di eventi.

Metodi di estensione

GetMethodInfo(Delegate)

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.

Si applica a

Vedi anche