Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Игнорируется часть кликов

#c_sharp #счетчики #click


На днях понадобилось написать программу, которая считает количество кликов, совершенных
человеком. Однако заметил, что отлавливается не каждый клик: если человек совершает
хотя бы 2-3 щелчка в секунду, часть точно будет проигнорирована. Как с таким бороться?
Отлавливаю с помощью элементарной

private void opg_Click(object sender, EventArgs e)
{
    count++;
}

    


Ответы

Ответ 1



Скорее всего, когда пользователь делает 2-3 клика в секунду, то это воспринимается системой как двойной клик (отдельное от обычного клика событие). Попробуйте добавить: private void opg_DoubleClick(object sender, EventArgs e) { count = count + 1; } Также разницу поясняет справка от мелкомягких.

Ответ 2



Можно проще. Подпишитесь на событие MouseUp (или MouseDown).

Ответ 3



Нужно запретить обработку двойных кликов. Это можно сделать убрав соответствующий флаг из класса при создании формы: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private int clicks = 0; protected override CreateParams CreateParams { get { const int CS_DBLCLKS = 0x8; CreateParams cp = base.CreateParams; cp.ClassStyle &= ~CS_DBLCLKS; return cp; } } private void Form1_Click(object sender, EventArgs e) { this.Text = (++clicks).ToString(); } }

Комментариев нет:

Отправить комментарий