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

Как вывести значение таймера в нескольких формах

01.11.2015, 21:58. Показов 2199. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Никак не могу решить одну "заковыристую" (во всяком случае для меня) задачу. Может кто поможет? Итак: есть несколько форм, на Form3 находится button, labelF3. Нажав на button включается таймер, его
время отображается на labelF3. Надо, чтобы это же время отображалось еще на других label-ах других форм ( labelF1 - Form1, labelF2 соответственно Form2). Ниже привожу код таймера:

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
    public partial class Form3 : Form
    {
        public DateTime t1; // время запуска таймера
        public DateTime t2; // время срабатывания таймера
 
        public Form3()
        {
            InitializeComponent();
                                             //Позиционируем форму, от центра монитора
            this.StartPosition = FormStartPosition.Manual;
            this.Location = new Point(Screen.PrimaryScreen.Bounds.Width / 2 - 384, Screen.PrimaryScreen.Bounds.Height /     Height + 10);
        }
 
        public void button_MouseClick(object sender, MouseEventArgs e)
        {
            if (!timer.Enabled)
            {
                // таймер не работает
 
                // t1 - текущее время
                // t2 = t1 + интервал
 
                t1 = new DateTime(DateTime.Now.Year,
                       DateTime.Now.Month, DateTime.Now.Day);
                 
                t2 = t1.AddHours(1);
                t2 = t2.AddMinutes(10);
                t2 = t2.AddSeconds(5);
 
                button.Text = "Стоп";
 
                if (t2.Hour <= 9)
                {
                    labelF3.Text = "0" + t2.Hour.ToString() + ":";
                }
                else
                    labelF3.Text = t2.Hour.ToString() + ":";
 
                if (t2.Minute <= 9)
                    labelF3.Text += "0" + t2.Minute.ToString() + ":";
                else
                    labelF3.Text += t2.Minute.ToString() + ":";
 
                if (t2.Second <= 9)
                     labelF3.Text += "0" + t2.Second.ToString();
                else
                     labelF3.Text += t2.Second.ToString();
 
                // сигнал от таймера поступает каждую секунду
                timer.Interval = 1000;
 
                // пуск таймера
                timer.Enabled = true;
 
            }
            else
            {
                // таймер работает, останавливаем
 
                timer.Enabled = false;
                button.Text = "Пуск";
            }
           
        }
 
        public void timer_Tick(object sender, EventArgs e)
        {
            t2 = t2.AddSeconds(-1);
 
            if (t2.Hour <= 9)
                 labelF3.Text = "0" + t2.Hour.ToString() + ":";
            else
                 labelF3.Text = t2.Hour.ToString() + ":";
 
            if (t2.Minute <= 9)
                 labelF3.Text += "0" + t2.Minute.ToString() + ":";
            else
                 labelF3.Text += t2.Minute.ToString() + ":";
 
            if (t2.Second <= 9)
                 labelF3.Text += "0" + t2.Second.ToString();
            else
                 labelF3.Text += t2.Second.ToString();
 
            if (Equals(t1, t2))
            {
                timer.Enabled = false;
           
                //..... Происходит какое-то событие.
 
                button.Text = "Пуск";
            }
        } 
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2015, 21:58
Ответы с готовыми решениями:

Как изменить свойства однотипных PictureBox на нескольких формах
Задача следующая: Есть три формы, на этих формах находятся однотипные компоненты к примеру PictureBox с одинаковым Name. На одной из форм...

Вывести значение таймера
привет всем!!! тут надо вывести значение таймера в label и причем при каждом событии счетчик онулировался и начинал заново с нуля.... я ...

Как вывести максимальное значение из нескольких отрицательных
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { double a, b, n; a = -1.0; b = -0.5; n = 5.0; ...

2
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
01.11.2015, 22:58
Serjik_01,
код таймера здесь особо не нужен. Полезней было бы узнать как формы открываются.
Ниже пример для 2-х форм. 2-я открывается из 1-й. На обеих формах кнопка и лабел, на 2-й еще и таймер.
Класс формы 1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
        label1.Text = "0";
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2(this);
        f2.ShowDialog();
    }
 
    public void changeLabel1(string text)
    {
        label1.Text = text;
    }
}
Класс формы 2:
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
public partial class Form2 : Form
{
    Form1 f1;
    public Form2(Form1 f1)
    {
        InitializeComponent();
        this.f1 = f1;
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
        Timer tmr1 = new Timer();
        tmr1.Interval = 1000;
        tmr1.Tick += new EventHandler(tmr1_Tick);
        tmr1.Start();
    }
 
    void tmr1_Tick(object sender, EventArgs e)
    {
        label1.Text = (Int32.Parse(label1.Text) + 1).ToString();
        f1.changeLabel1(label1.Text);
    }
 
    private void Form2_Load(object sender, EventArgs e)
    {
        label1.Text = "0";
    }
}
При щелчке по кнопке на 2-й форме начинается счет в лабелах на обеих формах
0
0 / 0 / 1
Регистрация: 12.04.2015
Сообщений: 4
02.11.2015, 22:03  [ТС]
Вариант хороший,работает на две формы но у меня почему-то не получается вывести показания таймера на 3-4 формы.Показания таймера планируются выводить на Form1; Form2; Form3 и Form4
Form3 (где включается таймер) выводится label-ом Form1, Form2 выводится наведением курсора на label Form1, аналогично и с Form4.
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
    {
        
        public Form1()
        {
            InitializeComponent();
 
        }
        private void labelF1.1_Click(object sender, EventArgs e)
        {
            Form3 f3 = new Form3();
                                       //скрываем форму из панели задач
            f3.ShowInTaskbar = false;
                                       //Устанавливаем на форму модальность - (Show();) не модальная (ShowDialog();) 
            f3.Show();
        }
        private void labelF1.2_MouseHover(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
                                       //скрываем форму из панели задач
            f2.ShowInTaskbar = false;
                                       //Устанавливаем на форму модальность - (Show();) не модальная (ShowDialog();) 
            f2.Show();
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2015, 22:03
Помогаю со студенческими работами здесь

Использования одного таймера на разных формах
Есть 4 формы( главное меню и 3 уровня игры). При нажатии на кнопку &quot;Начать игру&quot; запускается таймер и начинается 1-ый уровень. Как...

Как объект некоторого класса сделать доступным для использования в нескольких формах?
Т. е. есть некоторый класс A. И два класса, наследуемых от класса Form, - формы: F1 и F2. Если я создаю объект класса А, т. е. пишу A...

Как сделать так чтобы с одной переменной можно было работать на нескольких формах?
Как сделать так чтобы с одной переменной можно было работать на нескольких формах?

Как вывести значения из нескольких Combobox без разрывов и растянуть значение TextBox на несколько строк?
Здравствуйте! Помогите пожалуйста вывести значения Combobox в один столбик,без разрывов, с учетом того, что в некоторых Comboboх...

Как изменить значение в других формах?
Здравствуйте! Работаю с библиотекой NAudio. В ней, для того что бы выбрать девайс для вывода звука прописывается вот такой код: ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru