Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 05.02.2013
Сообщений: 73
1

Временной диапазон в progress bar

06.06.2014, 11:22. Показов 2405. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу понять как правильно конвентировать TimeSpan в int,что бы прогресс бар считывал сколько осталось время и всё время выполнения.
Подробнее:
есть таймер отсчета:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void timer_Tick(object sender, EventArgs e)
        {
 if (ShutDownTime > DateTime.Now)
            {
               
                TimeSpan ts = ShutDownTime - DateTime.Now;
                labelInfo.Text = "Компьютер выключится через:  " + ts.Hours + " час " + ts.Minutes + " мин " +
                ts.Seconds + " сек " ;
                labelInfo2.Text = "";
             }
            else
            {
                timer.Stop();
                Process.Start("shutdown", "/s /t 0");
                Close();
            }
}
И есть прогресс бар,который так же нужно встроить в этот Timer_Tick.
C#
1
2
progressBar1.Maximum = allTime; // время установленное для выключения
progressBar1.Value = curTime; // текущее время запуска
Пытался так:

C#
1
2
progressBar1.Maximum = ShutDownTime; // выдает неявное преобразование TimeSpan в int 
progressBar1.Value = DateTime.Now;  // выдает неявное преобразование DataTime в int
Прошу у вас помощи,желательно не просто кода,но объяснения.
Если вас не затруднит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2014, 11:22
Ответы с готовыми решениями:

Progress Bar
Допустим, нужно сделать так чтобы после нажатия на кнопку, прогресс бар начинал свою работу, и...

Progress bar
Я собственно совсем новичок в программировании, так что не ругайтесь строго. Вопрос вот в чем, у...

Progress bar перемотка
Помогите пожалуйста,как реализовать перемотку вручную через progress bar в windows forms.

Работа с кнопкой и progress bar
Возникла проблема. Хочу чтобы на нажатие кнопки шла полоска в progress bar (хочу чтобы шло 5-7...

2
2151 / 1288 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
06.06.2014, 11:36 2
Visualru,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    public partial class Form1 : Form
    {
        TimeSpan time = new TimeSpan(0, 1, 0);//задаем интервал
        public Form1()
        {
            InitializeComponent();
            progressBar1.Maximum = (Int32)time.TotalSeconds;
            timer1.Interval = 1000;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (time.TotalSeconds > 0)
            {
                time = time.Subtract(new TimeSpan(0, 0, 0, 0, timer1.Interval));   //отнимаем от нашего счетчика времени , заданое время таймера , на каждом тике 
                progressBar1.Value++;
            }
            else
            {
                timer1.Enabled = false;
                MessageBox.Show("Отсчет закончен");
            }
        }
    }
1
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
06.06.2014, 11:36 3
Свойство Value там целочисленное, да ещё и Integer, так что попытки туда положить DateTime не увенчаются успехом. Не увенчается успехом и, например Ticks от DateTime, который типом long представлен. Я сильно сомневаюсь, что значение там будет больше int.MaxValue, но всё равно.
Если возьмём int.MaxValue как количество миллисекунд, то получим максимум чуть больше 24 дней.
Если как секунды, то чуть более 68 лет

В принципе и тот и другой вариант приемлемы, наверное. Так что получайте разницу между текущим временем и временем выключения и берите миллисекунды или секунды...
C#
1
2
3
            DateTime alarm = new DateTime();
            TimeSpan ts = alarm - DateTime.Now;
            int progressValue = (int)ts.TotalSeconds;
1
06.06.2014, 11:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2014, 11:36
Помогаю со студенческими работами здесь

Progress bar и поиск в ActiveDirectory
Уважаемые форумчане. Прошу помощи, есть форма с button и listbox-ом. По нажатии на кнопку,...

Вертикальный Progress Bar с изображениями
Здравствуйте, вопрос в изменении прогресс бара. Нужно сделать так, что бы он шел вертикально...

Заполнение Progress Bar в цикле
Добрый вечер, господа. Имеется 4 прогресс бара, которые должны последовательно заполняться, затем...

Как изменить форму Progress Bar'a?
Всем привет. Есть ли воможность изменить форму прогрс бара? допустим что бы он был круглым(или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru