GiveFeedbackEventArgs.Effect Egenskap

Definition

Hämtar feedback om dra och släpp-åtgärden som visas.

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

Egenskapsvärde

Ett av DragDropEffects värdena.

Exempel

I följande exempel visas en dra och släpp-åtgärd mellan två ListBox kontroller. Exemplet anropar DoDragDrop metoden när dragåtgärden startar. Dragåtgärden startar om musen har flyttats mer än SystemInformation.DragSize från musplatsen under MouseDown händelsen. Metoden IndexFromPoint används för att fastställa indexet för objektet som ska dras under MouseDown händelsen.

Exemplet visar också hur du använder anpassade markörer för dra och släpp-åtgärden. Exemplet förutsätter att det finns två markörfiler 3dwarro.cur , och 3dwno.cur, i programkatalogen, för de anpassade dra- respektive no-drop-markörer. De anpassade markören används om den UseCustomCursorsCheckCheckBox är markerad. De anpassade markörer anges i GiveFeedback händelsehanteraren.

Tangentbordstillståndet DragOver utvärderas i händelsehanteraren för höger ListBox, för att avgöra vilken dragåtgärd som ska baseras på tillståndet för tangenterna SKIFT, CTRL, ALT eller CTRL+ALT. Platsen där ListBox droppen skulle inträffa bestäms också under DragOver händelsen. Om de data som ska tas bort inte är en String, är den inställd på DragEventArgs.EffectDragDropEffects.None. Slutligen visas status för släppet i DropLocationLabelLabel.

De data som ska tas bort för höger ListBox bestäms i DragDrop händelsehanteraren och String värdet läggs till på rätt plats i ListBox. Om dragåtgärden flyttas utanför formulärets gränser avbryts dra och släpp-åtgärden i QueryContinueDrag händelsehanteraren.

Det här kodutdraget visar hur du GiveFeedbackEventArgs använder klassen. DoDragDrop Se metoden för det fullständiga kodexemplet.

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

Gäller för