Стоит такая задача нужно узнать, когда пользователь перестает двигать по форме. То есть я двигаю по форме мышкой без остановки двигаю, двигаю, а потом решаю перестать двигать и тут должен выдаться месадж. Использую Form1_MouseMove но не выходит сделать грамотно условие прошу помощи. P.S вроде задача не сложная.
1) 2 глобальыне переменных хранящие координаты мыши (p1, p2) 2) глобальная переменная отвечающая за факт начала движения. (f = false) 3) при mousemove делаешь так: - p1 = текущие координаты - f = true 4) также есть высокоскоростной таймер (скорость подбирается в зависимости от скорости срабатывания на прекращение движения мыши, а также на скорость движения мыши. Опытным путем всё подбирается) 5) в этом таймере делаешь фишку если f == true и p1 == p2 тогда выводишь сообщение какое тебе нужно иначе - p2 = p1 суть такова: В mousemove ты постоянно меняешь координату мыши + ставишь флаг что движение начало а в таймере ты проверяешь текущее состояние координат с предыдущим. если совпало, знfчит движения не было, если не совпало, значит есть движение и на до запомнить координаты новые В принципе чтобы нормаль обрабатывать даже медленное, но не прерывное движения достаточно таймера с периодом 100 мс
Спасибо все сделал !! Кому может пригодится PHP: Point p1 , p2 ; bool f = false; ... private void Form1_MouseMove(object sender, MouseEventArgs e) { f = true; p1 = Cursor.Position; } private void timer1_Tick(object sender, EventArgs e) { this.label1.Text = p1.X.ToString() + " " + p1.Y.ToString(); this.label2.Text = Cursor.Position.X.ToString() + " " + Cursor.Position.Y.ToString(); if (f && p1 == p2) { this.label3.Text = "No Move"; } else { this.label3.Text = "Move"; p2 = p1; } } private void button1_Click(object sender, EventArgs e) { timer1.Start(); }