Как вы получаете все клики для прохождения мероприятия? Я заметил, что если вы нажимаете слишком быстро, он думает, что вы дважды щелкаете и не посылаете клики обработчику событий. Есть ли способ получить все клики?WinForms отключает двойные клики и принимает все щелчки мышью?
ответ
Не уверен, почему этот вопрос получил щедрость, принятый ответ должен быть уже довольно близок к решению. За исключением того, что вы должны использовать MouseUp вместо MouseDown, ваш пользователь обычно ожидает, что действие клика вступит в силу, когда он отпустит кнопку. Который обеспечивает резервную копию «oops», не означает, что нужно щелкнуть по ней, переместить мышь так, чтобы она проигнорировалась ».
Тем не менее, для встроенных элементов управления Winforms, таких как PictureBox, это настраивается с помощью метода Control.SetStyle(). Добавьте новый класс в свой проект и вставьте код, показанный ниже. Компиляция. Отбросьте новый элемент управления из верхней части панели инструментов:
using System;
using System.Windows.Forms;
class MyPictureBox : PictureBox {
public MyPictureBox() {
this.SetStyle(ControlStyles.StandardDoubleClick, false);
}
}
ли остерегаться, однако, что это не будет работать для классов .NET, которые обертывают существующий нативный управления Windows. Подобно TextBox, ListBox, TreeView и т. Д. Основная конфигурация для этого - WNDCLASSEX.style member, флаг стиля CS_DBLCLKS. Код, устанавливающий флаг стиля, выпекается в Windows и не может быть изменен. Вам понадобится операция другого типа, чтобы дважды щелкнуть одним щелчком мыши. Вы можете сделать это путем переопределения методы WndProc(), я приведу пример для TextBox:
using System;
using System.Windows.Forms;
class MyTextBox : TextBox {
protected override void WndProc(ref Message m) {
// Change WM_LBUTTONDBLCLK to WM_LBUTTONCLICK
if (m.Msg == 0x203) m.Msg = 0x201;
base.WndProc(ref m);
}
}
Просто измените имя класса, если вы хотите сделать это для других элементов управления. Commandeering Winforms, чтобы он работал так, как вы хотите, никогда не требует большого кода, просто Petzold :)
Думаю, вы хотите посчитать все клики. Если вы хотите посчитать, нажмите, затем установите одну переменную счетчика и увеличьте ее в событии click. Может быть, эта помощь вам ....
Сделай это сам и быстро нажмите его очень быстро 10 раз. Вы получите число меньше 10. Я хочу, чтобы все 10 кликов. – Will
Вы хотите использовать элементы управления MouseDown вместо события Click. MouseDown будет вызываться каждый раз, когда мышь «нажата» на этом элементе управления. Щелчок не может быть вызван, если система считает, что это двойной щелчок. Вместо этого будет создано событие DoubleClick.
- 1. Flex захватить все щелчки мышью на приложении
- 2. Игнорировать все щелчки мышью на графике matplotlib
- 3. Android ListView, когда элементы Focusable, отключает щелчки
- 4. Сделать клики мышью неактуальными, когда текст выбран
- 5. Как подписаться на двойные клики?
- 6. Двойные клики в NSWindows?
- 7. Обнаруживать все клики из WinForms MainMenu Control
- 8. ListView элемент не принимает щелчки
- 9. Как предотвратить двойные щелчки с помощью ember.js?
- 10. Обнаруживать множественные двойные щелчки/Сбросить MouseEvent?
- 11. Как распознать двойные щелчки при закрытии WPF контекстного меню
- 12. Блокировка TreeView реагирует только на двойные щелчки
- 13. Visual Studio макросов: WindowActivated обработчик превращает клики в двойные клики
- 14. Как имитировать щелчки мышью и нажатия клавиш в F #
- 15. Как я могу различать однократные и двойные щелчки в .Net?
- 16. предотвратить двойные клики по ссылкам с jQuery
- 17. Обнаружить щелчки мышью на изображении и сохранить их в базе данных
- 18. Как предотвратить двойные клики на MVC Html.SubmitButton
- 19. как распространяемые листы Google обнаруживают щелчки мышью без изменения фокуса
- 20. анкерный тег не принимает левые клики
- 21. Как игнорировать пользовательские клики в WinForms?
- 22. Поймать/перехватить все щелчки мыши
- 23. проблема с таблицей нажатий кнопок, которая должна предотвращать двойные щелчки на сфокусированной кнопке, сохраняя при этом следующие клики:
- 24. JQuery unbind specichandler, а не все клики
- 25. Как узнать, были ли двойные щелчки элементов в списке?
- 26. Маркировка курсора Щелчки/Отводы/Двойные краны в Android Studio Screen Recorder
- 27. Кнопка один клик не работает, двойные щелчки работает
- 28. Firefox не принимает мое взаимодействие с мышью
- 29. JQuery отключает все гиперссылки
- 30. Поймать все клики андроид-приложения
Вместо этого используйте событие mousedown. –
@ RussellTroywest Я думаю, что событие [MouseClick] (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseclick%28VS.80%29.aspx) было бы лучше. Из-за наведения порядка. –
@ Майкл: Согласно MSDN «Два отдельных клика, которые достаточно близки по времени, как определено настройками мыши операционной системы пользователя, будут генерировать событие MouseDoubleClick вместо второго события MouseClick». - Это то, что видит Высокий. –