2010-05-30 4 views
1

Dans mon application, j'attrape un événement DragOver, puis j'effectue une action. Je voudrais attendre une demi-seconde avant d'effectuer l'action, l'action ne devrait pas être effectuée après ce délai si l'opération glisser est terminée.C#, introduire un délai DragOver

La seule façon que je pouvais penser à mettre en œuvre cette fonctionnalité est quelque chose comme ceci:

Function DragOver Event 
    If TimerTimeReached Then 
     PerformDragAction 
    Else If Not TimerStarted 
     StartTimer 
    End 
End Function 

Function DragLeave Event 
    If TimerStarted 
     StopTimer 
    End 
End Function 

Y at-il une meilleure façon d'effectuer cette opération?

Répondre

1

Cela semble correct, mais l'événement DragOver se produit-il plusieurs fois?

Je pense que PerformDragAction doit être déplacé vers un gestionnaire d'événements Timer.

+0

Le DragOver ne se produisant pas après que la minuterie est atteinte n'est pas un gros problème. L'utilisateur est très susceptible de déplacer la souris au lieu de rester immobile, mais ce serait bien de le faire fonctionner même si l'événement n'est pas déclenché à plusieurs reprises. Je déclencherai probablement automatiquement l'événement avec un rappel de minuterie lorsque le délai est atteint. Il doit également continuer à effectuer l'action de glisser si l'utilisateur continue à faire glisser. – user275587

Questions connexes