GiveFeedbackEventArgs.Effect Proprietà
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.
Ottiene il feedback dell'operazione di trascinamento della selezione visualizzato.
public:
property System::Windows::Forms::DragDropEffects Effect { System::Windows::Forms::DragDropEffects get(); };
public System.Windows.Forms.DragDropEffects Effect { get; }
member this.Effect : System.Windows.Forms.DragDropEffects
Public ReadOnly Property Effect As DragDropEffects
Valore della proprietà
Uno dei valori di DragDropEffects.
Esempio
Nell'esempio seguente viene illustrata un'operazione di trascinamento della selezione tra due controlli ListBox. Nell'esempio viene chiamato il metodo DoDragDrop all'avvio dell'azione di trascinamento. L'azione di trascinamento inizia se il mouse è stato spostato più di SystemInformation.DragSize dalla posizione del mouse durante l'evento MouseDown. Il metodo IndexFromPoint 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 di cursore, 3dwarro.cur
e 3dwno.cur
, rispettivamente per i cursori di trascinamento e senza rilascio personalizzati. I cursori personalizzati verranno utilizzati se è selezionata la UseCustomCursorsCheck
CheckBox. I cursori personalizzati vengono impostati nel gestore eventi GiveFeedback.
Lo stato della tastiera viene valutato nel gestore eventi DragOver per il ListBox
destro per determinare quale operazione di trascinamento si baserà sullo stato dei tasti MAIUSC, CTRL, ALT o CTRL+ALT. La posizione nel ListBox
in cui si verifica l'eliminazione viene determinata anche durante l'evento DragOver
. Se i dati da eliminare non sono un String
, il DragEventArgs.Effect è impostato su DragDropEffects.None. Infine, lo stato del rilascio viene visualizzato nel DropLocationLabel
Label.
I dati da eliminare per il ListBox
corretto sono determinati nel gestore eventi DragDrop e il valore String
viene aggiunto nella posizione appropriata nel ListBox
. Se l'operazione di trascinamento si sposta all'esterno dei limiti del form, l'operazione di trascinamento della selezione viene annullata nel gestore eventi QueryContinueDrag.
Questo estratto di codice illustra l'uso della classe GiveFeedbackEventArgs. Vedere il metodo DoDragDrop 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