#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(); } }
Комментариев нет:
Отправить комментарий