Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.85/103: Рейтинг темы: голосов - 103, средняя оценка - 4.85
Mr_Ser_Win
44 / 43 / 7
Регистрация: 15.10.2008
Сообщений: 320
#1

Пишем Секундомер

13.03.2010, 12:02. Просмотров 18964. Ответов 33

Привет. необходимо сделать такую штуку.
По нажатию клавиши старт должен включиться секундомер( который показывает минуты и секунды MM:SS)
И по нажатию на клавишу стоп остановиться.
Как такое сделать? заранее спасибо

Добавлено через 34 минуты
P.S. и это должно отображатьса в лейбле к примеру. чтобы человек видел сколько время уже прошло
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2010, 12:02
Ответы с готовыми решениями:

Пишем англо-русский словарь с нуля
Привет всем, кто сюда будет заглядывать. Предлагаю совместными усилиями...

Секундомер
Привет всем, делаю программу, которая засекает время (секудомер) , но...

Секундомер на форме
Здравствуйте! Хочу сделать секундомер на C# формах, не могу понять как сделать?

Секундомер запаздывает
Сделал секундомер простенький на c# им заметил такую фигню, что он запаздывает....

Cтруктура программы. Где пишем основную часть кода?
Добрый всем денек, есть ламерский вопрос, не пинайте ногами. Создаю проект C#...

33
Eugene22
_
2350 / 1223 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
13.03.2010, 14:43 #2
Лучший ответ Сообщение было отмечено как решение

Решение

Mr_Ser_Win, в принципе задача не сложная, хотя я не знаток си шарпа, возможно, можно как то проще сделать, думаю тут все понятно.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DateTime date1 = new DateTime(0, 0);
        private void timer1_Tick(object sender, EventArgs e)
        {
            date1 = date1.AddSeconds(1);
            label1.Text = date1.ToString("mm:ss");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (timer1.Enabled == true)
                timer1.Enabled = false;
            else
                timer1.Enabled = true;
        }
5
Mr_Ser_Win
44 / 43 / 7
Регистрация: 15.10.2008
Сообщений: 320
13.03.2010, 15:36  [ТС] #3
AlexDios, тот код что ты дал, он при старте показывает 1 сек и все... отсчет дальше не идет

Добавлено через 42 минуты
все отлично работает. спасибо
0
Eugene22
_
2350 / 1223 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
13.03.2010, 18:49 #4
Немного модифицировал код, чтобы начинал подсчет с миллисекунд как в обычных таймерах - для этого надо в предыдущем примере поменять код для таймера и установить интервал таймера равным единице
C#
1
2
3
4
5
private void timer1_Tick(object sender, EventArgs e)
        {
            date1 = date1.AddMilliseconds(1);
            label1.Text = date1.ToString("mm:ss:fff");
        }
0
Mr_Ser_Win
44 / 43 / 7
Регистрация: 15.10.2008
Сообщений: 320
13.03.2010, 19:08  [ТС] #5
Цитата Сообщение от AlexDios Посмотреть сообщение
поменять код для таймера и установить интервал таймера равным единице
не совсем понял это
0
Eugene22
_
2350 / 1223 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
13.03.2010, 19:19 #6
Mr_Ser_Win, ну то есть в свойствах таймера установить свойство Interval=1 - для миллисекунд, а для секунд он устанавливается равным 1000.
Хотя ИМХО таймер в NET идет медленнее чем часы на локальном компе
0
Mr_Ser_Win
44 / 43 / 7
Регистрация: 15.10.2008
Сообщений: 320
13.03.2010, 19:24  [ТС] #7
AlexDios, как то с секундами он у меня лучше работал...
0
Jman
47 / 47 / 25
Регистрация: 11.10.2015
Сообщений: 575
Завершенные тесты: 4
02.11.2016, 09:44 #8
Добрый день, подскажите пожалуйста, что такое - timer1 ?
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 10:05 #9
Цитата Сообщение от Jman Посмотреть сообщение
Добрый день, подскажите пожалуйста, что такое - timer1 ?
Набор символов.
Если про код есть вероятность, что это
https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
или
https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
1
Jman
47 / 47 / 25
Регистрация: 11.10.2015
Сообщений: 575
Завершенные тесты: 4
02.11.2016, 10:46 #10
Спасибо! Я думал это класс Time and Date, a это класс Timer; А как сделать вывод на форму? При помощи Label?

Добавлено через 32 минуты
Как вывести этот таймер на форму, ребят подскажите пожалуйста....
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 10:56 #11
Цитата Сообщение от Jman Посмотреть сообщение
Как вывести этот таймер на форму, ребят подскажите пожалуйста....
Перетаскиваешь и все (в дизайнере) ну или ручками:

C#
1
2
3
Timer tmr = new Timer();
tmr .Interval = 1000;  // Интервал в милисекундах
tmr .Start();
0
Jman
47 / 47 / 25
Регистрация: 11.10.2015
Сообщений: 575
Завершенные тесты: 4
02.11.2016, 11:01 #12
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Перетаскиваешь
В форме нужно взять элемент Label? Какое событие нужно вызвать?
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 11:02 #13
Цитата Сообщение от Jman Посмотреть сообщение
В форме нужно взять элемент Label? Какое событие нужно вызвать?
???? Что хотите ? Событие тика таймера?
0
Jman
47 / 47 / 25
Регистрация: 11.10.2015
Сообщений: 575
Завершенные тесты: 4
02.11.2016, 11:04 #14
Есть кнопка, нажимаю кнопку тикает таймер в окошке mm:ss;

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime date1 = new DateTime(0, 0);
            date1 = date1.AddSeconds(1);
            label1.Text = date1.ToString("mm:ss");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
      Timer timer1 = new Timer();
            if (timer1.Enabled == true)
                timer1.Enabled = false;
            else
                timer1.Enabled = true;
                                 
        }
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 11:13 #15
C#
1
2
3
4
5
6
7
8
9
        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
                timer1.Enabled = timer1.Enabled ? false : true ;
        }
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 11:19 #16
Вот нашел тут у себя что то:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
 
namespace Stopwatch
{
    public partial class MainForm : Form
    {
        private Font FntTW = new Font("Arial", 84);
        int ValueStopwatch = 0;
        int Calc = 0;
        bool Flash = false;
 
        public MainForm()
        {
            InitializeComponent();
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint, true);
        }
 
        //
        void Start()
        {
            timerSec.Enabled = true;
            buttonStop.Text = "STOP";
            Invalidate();
        }
 
        //
        void Stop()
        {
            if (timerSec.Enabled)
            {
                buttonStop.Text = "RESET";
            }
            else
            {
                ValueStopwatch = 0;
                buttonStop.Text = "STOP";
            }
 
            timerSec.Enabled = false;
 
            Invalidate();
        }
 
        //
        void Tick()
        {
            Flash = Flash ? false : true;
 
            if (Calc == 2) { ValueStopwatch++; }
            Calc = Calc >= 2 ? 0 : Calc += 1;
 
            if (ValueStopwatch == 60)
            {
                MessageBox.Show("Прощла минута!");
            }
 
            Invalidate();
        }
 
        // 
        private void buttonStart_Click(object sender, EventArgs e)
        {
            Start();
        }
 
        // 
        private void buttonStop_Click(object sender, EventArgs e)
        {
            Stop();
        }
 
        // 
        private void timerSec_Tick(object sender, EventArgs e)
        {
            Tick();
        }
 
        //
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
 
            string s = Flash ? "{0:00}   {1:00}" : "{0:00} : {1:00}";
 
            e.Graphics.DrawString(string.Format(s, ValueStopwatch / 60, ValueStopwatch % 60), FntTW, Brushes.WhiteSmoke, new PointF());
        }
    }
}
1
Миниатюры
Пишем Секундомер  
Jman
47 / 47 / 25
Регистрация: 11.10.2015
Сообщений: 575
Завершенные тесты: 4
02.11.2016, 11:24 #17
Это же дату выводит а не секундомер...
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 11:25 #18
Цитата Сообщение от Jman Посмотреть сообщение
Это же дату выводит а не секундомер...
пост №16 смотрите.
0
Jman
47 / 47 / 25
Регистрация: 11.10.2015
Сообщений: 575
Завершенные тесты: 4
02.11.2016, 11:31 #19
Что такое timerSec_Tick ?
0
Sanya_sa
Модератор
689 / 678 / 296
Регистрация: 03.02.2015
Сообщений: 4,290
Записей в блоге: 8
Завершенные тесты: 3
02.11.2016, 11:32 #20
Цитата Сообщение от Jman Посмотреть сообщение
Что такое timerSec_Tick ?
Событие таймера https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx

Добавлено через 26 секунд
Точнее обработчик события Tick.
0
02.11.2016, 11:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2016, 11:32

Не работает программа-секундомер
Здравствуйте, написал программу секундомер, но таймер не идет. Не могли бы...

Секундомер для игры
Доброго времени суток! Возник вопрос по реализации секундомера в игре... Нужно,...

Секундомер не правельно работает
Пишу программу, которая засикает время работы за ПК , вроде бы все делаю...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru