Control.GiveFeedback Esemény

Definíció

Húzási művelet során következik be.

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 

Eseménytípus

Példák

Az alábbi példakód két ListBox vezérlő közötti húzási műveletet mutat be. A példa meghívja a metódust az DoDragDrop húzási művelet indításakor. A húzási művelet akkor indul el, ha az egér az esemény során több helyről mozdult el, mint SystemInformation.DragSize az MouseDown egér helyére. A IndexFromPoint metódus az esemény során MouseDown húzandó elem indexének meghatározására szolgál.

A példa azt is bemutatja, hogy egyéni kurzorokat használ a húzási művelethez. A példához két kurzorfájlra van szükség, 3dwarro.cur és 3dwno.curaz alkalmazáskönyvtárban az egyéni húzáshoz és a kurzorok elcsúszásához. A program az egyéni kurzorokat fogja használni, ha a UseCustomCursorsCheckCheckBox kurzort bejelölte. Az egyéni kurzorok az GiveFeedback eseménykezelőben vannak beállítva.

A billentyűzet állapotának kiértékelése a DragOver jobb oldali ListBoxeseménykezelőben történik annak meghatározásához, hogy a húzási művelet a SHIFT, a CTRL, az ALT vagy a CTRL+ALT billentyűk állapotán alapuljon. Az esemény során ListBox annak a helynek a DragOver helyét is meghatározza, ahol az esés bekövetkezne. Ha az elejtendő adatok nem egyString, akkor az DragEventArgs.Effect érték a Nonekövetkezőre van állítvaDragDropEffects: . Végül az elvetés állapota megjelenik a DropLocationLabelLabel.

A jobb oldali ListBox ledobandó adatokat az DragDrop eseménykezelő határozza meg, és az String érték a megfelelő helyen lesz hozzáadva a ListBox. Ha az húzási művelet az űrlap határain kívülre kerül, az húzási művelet megszakad az QueryContinueDrag eseménykezelőben.

Ez a kódrészlet az esemény használatát GiveFeedback mutatja be. Tekintse meg a DoDragDrop teljes kód példájának metódusát.

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

Megjegyzések

Az GiveFeedback esemény akkor jön létre, amikor elindít egy húzási műveletet. Az esemény esetén a GiveFeedback húzási esemény forrása módosíthatja az egérmutató megjelenését, hogy vizuális visszajelzést adjon a felhasználónak egy húzási művelet során.

Az alábbiakban azt ismertetjük, hogy a húzással és húzással kapcsolatos események hogyan és mikor lépnek fel.

A DoDragDrop metódus az aktuális kurzor helye alatti vezérlőt határozza meg. Ezután ellenőrzi, hogy a vezérlő érvényes dobási cél-e.

Ha a vezérlő érvényes dobási cél, az GiveFeedback eseményt a megadott húzási effektussal emeli ki. A húzási effektusok listáját az DragDropEffects enumerálásban találja.

A rendszer nyomon követi az egérmutató pozíciójának, a billentyűzet állapotának és az egérgomb állapotának változásait.

  • Ha a felhasználó kilép egy ablakból, az DragLeave esemény létrejön.

  • Ha az egér egy másik vezérlőt ad meg, az DragEnter adott vezérlő neve fel lesz emelve.

  • Ha az egér mozog, de ugyanabban a vezérlőben marad, az DragOver esemény fel lesz emelve.

Ha a billentyűzet vagy az egérgomb állapota megváltozik, a rendszer elindítja az QueryContinueDrag eseményt, és meghatározza, hogy folytatja-e a húzást, elveti-e az adatokat, vagy megszakítja-e a műveletet az Action esemény QueryContinueDragEventArgstulajdonságának értéke alapján.

  • Ha az érték DragAction az, az Continue esemény a művelet folytatásához lesz emelve, és az DragOver eseményt az új effektussal emeli ki, így megfelelő vizuális GiveFeedbackvisszajelzés állítható be. Az érvényes effektusok listáját az DragDropEffects enumerálásban találja.

    Note

    Az DragOver és GiveFeedback az események párosítása úgy történik, hogy az egér a dobási célon áthaladva a lehető legtöbb up-to-date visszajelzést kapjon az egér pozíciójáról.

  • Ha az érték DragAction az Drop, akkor a drop effect értéke vissza lesz adva a forrásnak, így a forrásalkalmazás végrehajthatja a megfelelő műveletet a forrásadatokon, például kivághatja az adatokat, ha a művelet áthelyezés volt.

  • Ha az érték DragAction az Cancel, az DragLeave esemény fel lesz emelve.

Az események kezelésével kapcsolatos további információkért lásd : Események kezelése és emelése.

A következőre érvényes:

Lásd még