Classe GiveFeedbackEventArgs
Assembly: System.Windows.Forms (in system.windows.forms.dll)
L'evento GiveFeedback si verifica durante un'operazione di trascinamento. Esso consente all'origine di un evento di trascinamento di modificare l'aspetto del puntatore del mouse per fornire all'utente indicazioni visive durante un'operazione di trascinamento. L'oggetto GiveFeedbackEventArgs specifica il tipo di operazione di trascinamento e se vengono utilizzati i cursori predefiniti.
Per ulteriori informazioni sul modello di eventi, vedere Eventi e delegati.
Nell'esempio riportato di seguito viene illustrata un'operazione di trascinamento eseguita tra due controlli ListBox. Nell'esempio, all'avvio dell'azione di trascinamento viene chiamato il metodo DoDragDrop. L'azione di trascinamento viene avviata se il mouse viene spostato dalla posizione originaria di una distanza maggiore di quanto specificato da SystemInformation.DragSize durante l'evento MouseDown. Per determinare l'indice dell'elemento da trascinare durante l'evento MouseDown viene utilizzato il metodo IndexFromPoint.
Nell'esempio viene inoltre illustrato l'utilizzo di cursori personalizzati per le operazioni di trascinamento. Si suppone che nella directory dell'applicazione siano presenti due file cursore, 3dwarro.cur e 3dwno.cur, relativi rispettivamente al cursore personalizzato di trascinamento e al cursore personalizzato di non trascinamento. I cursori personalizzati verranno utilizzati se l'oggetto UseCustomCursorsCheckCheckBox è selezionato. L'impostazione dei cursori personalizzati viene eseguita nel gestore eventi GiveFeedback.
Lo stato della tastiera viene valutato nel gestore eventi DragOver per l'oggetto ListBox di destra, per determinare se l'operazione di trascinamento verrà basata sullo stato dei tasti MAIUSC, CTRL, ALT o CTRL+ALT. Durante l'evento DragOver viene inoltre determinato il punto all'interno dell'oggetto ListBox in cui si verificherà il rilascio. Se i dati da trascinare non sono di tipo String, la proprietà DragEventArgs.Effect verrà impostata su DragDropEffects.None. Infine, lo stato del trascinamento verrà visualizzato nell'oggetto DropLocationLabelLabel..
I dati da trascinare nell'oggetto ListBox di destra sono determinati nel gestore eventi DragDrop e il valore String viene aggiunto nella destinazione appropriata all'interno del ListBox. Se lo spostamento eseguito con l'operazione di trascinamento oltrepassa i limiti del form, l'operazione di trascinamento verrà annullata nel gestore eventi QueryContinueDrag.
Nella porzione di codice riportata di seguito viene illustrato l'utilizzo della classe GiveFeedbackEventArgs. Per l'esempio di codice completo, vedere il metodo DoDragDrop.
private 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,
System.Windows.Forms.GiveFeedbackEventArgs e)
{
// Use custom cursors if the check box is checked.
if (useCustomCursorsCheck.get_Checked()) {
// Sets the custom cursor based upon the effect.
e.set_UseDefaultCursors(false);
if ((e.get_Effect() & DragDropEffects.Move)
== DragDropEffects.Move) {
get_Cursor().set_Current(myNormalCursor);
}
else {
get_Cursor().set_Current(myNoDropCursor);
}
}
} //listDragSource_GiveFeedback
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.