2010-05-30 4 views
1

В моем приложении я поймаю событие DragOver, а затем выполните действие. Я хотел бы подождать полсекунды перед выполнением действия, действие не должно выполняться после этой задержки, если операция перетаскивания закончилась.C#, ввести задержку DragOver

Единственный способ, которым я мог придумать, чтобы реализовать эту возможность что-то вроде этого:

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

Function DragLeave Event 
    If TimerStarted 
     StopTimer 
    End 
End Function 

Есть ли лучший способ выполнить эту операцию?

ответ

1

Все в порядке, но случается ли событие DragOver несколько раз?

Я думаю, что PerformDragAction должен перейти к обработчику событий Timer.

+0

DragOver, который не происходит после достижения таймера, не является большой проблемой. Пользователь, скорее всего, будет перемещать мышь, а не оставаться неподвижным, но было бы неплохо сделать это, даже если событие не будет запускаться повторно. Вероятно, я буду автоматически запускать событие с помощью обратного вызова таймера, когда будет достигнута задержка, также необходимо продолжить выполнение действия перетаскивания, если пользователь по-прежнему перетаскивает. – user275587