Control.GiveFeedback Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica durante un'operazione di trascinamento.
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 evento
Esempio
Nell'esempio di codice 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. L'esempio richiede che nella directory dell'applicazione esistano due file 3dwarro.cur
3dwno.cur
di cursore, rispettivamente per i cursori di trascinamento personalizzati e senza rilascio. I cursori personalizzati verranno utilizzati se è UseCustomCursorsCheck
CheckBox 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 , String
l'oggetto DragEventArgs.Effect viene impostato su None
in DragDropEffects. Infine, lo stato dell'eliminazione viene visualizzato in DropLocationLabel
Label.
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 dell'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
L'evento viene generato all'avvio GiveFeedback di un'operazione di trascinamento della selezione. Con l'evento , l'origine GiveFeedback di un evento di trascinamento può modificare l'aspetto del puntatore del mouse per fornire all'utente feedback visivo durante un'operazione di trascinamento della selezione.
Di seguito vengono illustrate le modalità e le circostanze in cui vengono generati eventi relativi a operazioni di trascinamento.
Il DoDragDrop metodo determina il controllo sotto la posizione corrente del cursore. Verifica quindi se il controllo è una destinazione di rilascio valida.
Se il controllo è una destinazione di rilascio valida, l'evento GiveFeedback viene generato con l'effetto di trascinamento della selezione specificato. Per un elenco degli effetti di trascinamento e rilascio, vedere l'enumerazione DragDropEffects.
Viene tenuta traccia delle modifiche apportate alla posizione del cursore del mouse, allo stato della tastiera e allo stato dei pulsanti del mouse.
Se l'utente si sposta al di fuori di una finestra, verrà generato un evento DragLeave.
Se il mouse viene spostato su un altro controllo, verrà generato l'evento DragEnter per tale controllo.
Se il mouse viene spostato ma sempre all'interno dello stesso controllo, verrà generato l'evento DragOver.
Se si verifica una modifica nello stato della tastiera o del pulsante del mouse, l'evento QueryContinueDrag viene generato e determina se continuare il trascinamento, rilasciare i dati o annullare l'operazione in base al valore della Action proprietà dell'evento QueryContinueDragEventArgs.
Se il valore di DragAction è
Continue
, l'evento DragOver viene generato per continuare l'operazione e l'evento viene generato con il GiveFeedback nuovo effetto in modo che sia possibile impostare il feedback visivo appropriato. Per un elenco degli effetti di trascinamento validi, vedere l'enumerazione DragDropEffects.Nota
Gli DragOver eventi e GiveFeedback vengono associati in modo che quando il mouse si sposta attraverso la destinazione di rilascio, all'utente viene assegnato il feedback più aggiornato sulla posizione del mouse.
Se il valore di è
Drop
, il valore dell'effetto di rilascio viene restituito all'origine, in modo che l'applicazione di origine possa eseguire l'operazione appropriata sui dati di DragAction origine, ad esempio tagliare i dati se l'operazione è stata spostata.Se il valore di DragAction è
Cancel
, viene generato l'evento DragLeave .
Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per