diablo22 Ответов: 2

Vb.net таймер из моих настроек


Здравствуйте может ли кто нибудь помочь мне как создать эту функцию:
Мои Настройки.Время = 10 ( время число пользователей 10)

И я хочу, когда form load Timer1 запускается и читает из My.Settings.Значение времени
И начать обратный отсчет от этого значения до 0. Когда значение станет 0, чтобы показать msgbox(работа).

Именно это я и пытаюсь сделать. Чтобы прочитать из My.Settings значение и отсчет времени от него.

Что я уже пробовал:

Form1_load
Timer1.Start()

Timer1_Tick:
<pre>Try
            Timer1.Interval = My.Settings.Time
            If My.Settings.Time = 0 Then
                MsgBox("Work")
                Timer1.Stop()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

ZurdoDev

Где ты застрял?

diablo22

я не могу этого сделать, мой код выше вообще не работает

ZurdoDev

Отладьте код и найдите конкретную проблему, с которой вам нужна помощь.

diablo22

он не отсчитывает значение из настроек

ZurdoDev

Я не вижу никакого кода, который будет отсчитывать время. Может быть, вы имеете в виду, что таймер не срабатывает?

diablo22

таймер запускается, но я не могу заставить читать из моего значения.settings.time и начать обратный отсчет с 10 - 1 до 0, когда доберусь до 0, чтобы отобразить msgbox

ZurdoDev

Если вы хотите вести обратный отсчет в каждом тиковом событии, создайте переменную, которая хранит число 10, а затем в тиковом событии просто вычитайте из него единицу.

diablo22

что-то вроде:
Дим прогресс как integer = мой.Параметры.isBackUpTime
Private Sub Timer2_Tick(sender As Object, e As EventArgs) обрабатывает Timer2.Tick
Попробуй
прогресс = Прогресс - 1
-Таймер2.Интервал = 1

Если Прогресс = 0, то
MsgBox("начать копирование")
Конец, Если
Поймать ex как исключение
С помощью MsgBox(исх.Сообщение)
Конец Попытки
Конец Подводной Лодки

ZurdoDev

До сих пор не ясно, что именно вы хотите, чтобы произошло, Но да, что-то в этом роде.

diablo22

это понятно.
Сначала получите номер из my.settings.time
Затем таймер тикает каждую секунду уменьшать прогресс - 1 до тех пор, пока не получит 0, а затем, когда его 0 покажет msgbox

ZurdoDev

Хорошо. Я опубликую это как решение.

2 Ответов

Рейтинг:
2

ZurdoDev

Как уже упоминалось в комментариях, объявите переменную уровня класса, а затем в событии timer tick вычитайте одну из этой переменной, а затем выполните оператор if, чтобы проверить значение.


Рейтинг:
1

Dave Kreskowiak

У вас нет другого выбора, кроме как научиться использовать отладчик. Он расскажет вам, какие значения находятся в любой точке вашего кода во время его выполнения.

Установите точку останова на If оператор, запустите код, а затем точка останова будет нажата, код остановится и покажет вам строку, которая будет выполняться дальше. Наведите курсор мыши на временную часть My.Settings.Время, и оно должно показать вам текущее значение. Если это значение не то, что вы ожидаете, вам придется копаться в том, почему.