Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Click and DoubleClick


Автор: PaZ1T1V 18.12.2009, 18:22
есть такая простенькая задачка
Код

  private void Form1_MouseClick(object sender, MouseEventArgs e)
        {        
             MessageBox.Show("");
        }

        private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
             MessageBox.Show(e.Delta.ToString());
        } 


хочу сделать обработку по MouseClick и по MouseDoubleClick, но нажимаю два раза на кнопку, а перехватывается событие MouseClick

а как сделать чтоб была возможность реализовать и то и другое событие, например по кликам на форме, как показано в коде

PS первая мысля приходит в голову это таймер завести, но может есть вариант более логичный ? 

Автор: tol05 19.12.2009, 16:49
ИМХО таймер + анализ значения SystemInformation.DoubleClickTime - это верный путь

Автор: Лен 21.12.2009, 16:59
Предлагаю такую идею: на одиночный клик вешать старт таймера и /private bool/ flagDoubleClick = false;, на двойной клик -  flagDoubleClick = true;. Значение flagDoubleClick анализировать в обработчике таймера. SystemInformation.DoubleClickTime использовать для установки времени задержки таймера (естественно, с запасом).

Автор: PaZ1T1V 24.12.2009, 07:40
спасибо всем, буду разбираться!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)