Как реализовать акселератор нажатия кнопки? - Visual Basic .NET
Формулировка задачи:
Всем здравствуйте.
При нажатии и удержании одной из кнопок со стрелками элемента управления NumericUpDown скорость смены значений в окне увеличивается. То же происходит и при работе с клавиатурой: если нажать и держать клавишу нажатой, то через какое-то время частота "нажатий" возрастает. Пусть есть кнопка на форме, при клике на которой происходит какое-то отображаемое на форме событие. Пользователь нажал кнопку мышкой и не отпускает. Событие должно повторятся сначала раз в секунду, а если он её не отпустит ещё пару секунд, то частота повторения событий должна увеличится втрое. На VB-6 это выглядело так:
правда для изменения скорости повторов использовались разные кнопки мыши, к тому же использовался не приветствуемый переход GO TO. Может в NET есть нечто готовое, я имею в виду "акселерацию" повторов при удержании кнопки нажатой?
Листинг программы
- Private Sub imgYearForward_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
- flgYearForwardBtn = True 'TRUE = нажата кнопка "год вперёд"
- startscroll:
- If Button = 2 Then 'нажата правая кнопка мыши?
- pause_time = PAUSE_RBUTTON
- Else
- pause_time = PAUSE_LBUTTON
- End If
- intNumYear = intNumYear + 1
- If intNumYear > 9999 Then intNumYear = 9999
- lblYear = intNumYear
- 'задержка
- Pause pause_time
- 'проверка, не отжата ли кнопка
- If flgYearForwardBtn = False Then Exit Sub
- 'зацикливание
- GoTo startscroll
- End Sub
- Private Sub imgYearForward_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
- flgYearForwardBtn = False 'TRUE = нажата кнопка "год вперёд"
- intNumYear = intNumYear - 1
- '-----------------------------------------------------------------------------------------------------
- Call SetDate(DateAdd("yyyy", 1, DateSerial(intNumYear, intNumMonth, intNumDay)))
- '-----------------------------------------------------------------------------------------------------
- End Sub
Решение задачи: «Как реализовать акселератор нажатия кнопки?»
textual
Листинг программы
- MsgBox(Threading.Thread.CurrentThread.ManagedThreadId)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д