Что-то типа:
static void MouseEnteredYourRectangleEvent(object sender, MouseEventArgs e)
{
Timer delayTimer = new Timer();
delayTimer.Interval = 2000; // 2000msec = 2 seconds
delayTimer.Tick += new ElapsedEventHandler(delayTimer_Elapsed);
}
static void delayTimer_Elapsed(object sender, EventArgs e)
{
if(MouseInRectangle())
DoSomething();
((Timer)sender).Dispose();
}
Возможно, это можно сделать более эффективно, но должно работать: D
Два способа настроить MouseInRectangle -> один - заставить его получить текущие координаты мыши и положение элемента управления и посмотреть, находится ли он в нем; другим способом была бы переменная, которую вы установили бы в false на control.mouse_leave .