У меня есть несколько флажков, представляющих людей. Примерно так:
[ ] George
[ ] Sam
[ ] Steve
[ ] Lisa
Каждый может быть проверен индивидуально, и, конечно, также возможно проверить ни один вообще. Код запускается при изменении состояния проверки. Этот код использует состояние всех флажков в своем алгоритме.
Однако я бы хотел, чтобы они также вели себя как радиокнопки при двойном щелчке. То есть, если вы дважды щелкнете один, он должен стать отмеченным (независимо от его предыдущего состояния), а все остальные станут не отмеченными.
К сожалению, для флажка нет события двойного щелчка. Ясно, что мне нужно смоделировать двойной щелчок, используя mousedown (или мышь вверх) и комбинацию таймеров, секундомера и т. Д.
В конечном итоге я знаю, что найду решение путем экспериментов, поэтому, если я найду хорошее решение, я опубликую его здесь. Но у меня есть ощущение, что другие раньше уже имитировали двойные клики, и если кто-то может опубликовать хороший фрагмент для создания такого события из события mousedown, это было бы здорово.
P.S. Фрагмент должен как-то включать SystmInformation.DoubleClickTime
. (Это количество миллисекунд, которое отличает двойной щелчок от «двух одиночных щелчков». Оно может отличаться от одного компьютера к другому.) Код для одного щелчка не должен выполняться, пока не истечет так много времени, чтобы гарантировать, что двойной щелчок не не в ожидании. (Поскольку, как я уже говорил, код использует состояние всех флажков.)
P.P.S. Я использую VB.NET Express 2008 для приложения winforms, но, возможно, я могу перевести форму C #, если понадобится, и думаю, что это, вероятно, применимо ко всем платформам .NET.