С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
iamtihonov
2 / 2 / 0
Регистрация: 22.03.2011
Сообщений: 56
1

Подскажите как создать форму, при запуске которой значение Label1 будет увеличиваться каждую миллисекунду?

19.06.2011, 19:52. Просмотров 1126. Ответов 12
Метки нет (Все метки)

Подскажите как создать форму, при запуске которой значение Label1 будет увеличиваться каждую миллисекунду?
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 19:52
Ответы с готовыми решениями:

Создать таймер, значение которого будут увеличиваться каждую миллисекунду
Нужно создать таймер, значение которого будут увеличиваться каждую...

Как в C++ Builder выбрать форму, которая будет открываться при запуске?
Так получилось, что я сделал Remove юнита с именем userUnit , он всегда...

Создать форму в которой будет выбор данных с первой строчки таблицы
Доброго времени суток. не давно столкнулся с БД access 2007. и возникла...

Создать форму в которой будет отображаться список файлов *.txt в указанной папке
КАК в vba EXCEL создать форму в которой будет отображаться список файлов *.txt...

Нужно через форму создать кнопку, желательно с помощью картинки, нажатие по которой будет делать выборку из таблицы БД
Задача. Нужно через форму создать кнопку, желательно с помощью картинки,...

12
ushim
170 / 171 / 54
Регистрация: 01.06.2011
Сообщений: 507
19.06.2011, 20:23 2
C#
1
2
3
4
5
6
7
8
9
int i = 0;
int n = 9420; // Число, которое в конце концов должно быть записано в лэйбл
while (true)
{
    label1.Text = i.ToString();
    System.Threading.Thread.Sleep(1); // задержка в 1 мили секунду
    if (i == n)
        break;
}
Добавлено через 5 минут
А нет, Метод System.Threading.Thread.Sleep(1); приостанавливает работу этого потока, в итоге мы в бесконечном цикле
1
windzzor
59 / 59 / 13
Регистрация: 23.04.2011
Сообщений: 110
19.06.2011, 20:25 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            label1.Text = 0;
            timer1.Interval = 1;
            timer1.Tick += new EventHandler(timer1_Tick);
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            int i = int.Parse(label1.Text);
            if (i < int.MaxValue) { i++; label1.Text = i.ToString(); }
            else timer1.Enabled = false;
        }        
 
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true; ;
        }
    }
с таймером проще получится
1
Koran
мастер топоров
880 / 705 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
19.06.2011, 20:30 4
вариант1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Windows.Forms;
 
namespace TempWinFormProject {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            Label lb = new Label() { Text = "0" };
            this.Controls.Add(new Label() { Text = "0", Name = "lb" });
            Timer tm = new Timer() { Interval = 1, Enabled = true };
            tm.Tick += new EventHandler(tm_Tick);
        }
 
        void tm_Tick(object sender, EventArgs e) {
            (this.Controls["lb"] as Label).Text = (int.Parse((this.Controls["lb"] as Label).Text) + 1).ToString();
        }
    }
}
вариант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
using System;
using System.Windows.Forms;
 
namespace TempWinFormProject {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            someVar = 0;
            lb = new Label();
            lb.Text = "0";
            this.Controls.Add(lb);
            tm = new Timer();
            tm.Interval = 1;
            tm.Tick += new EventHandler(tm_Tick);
            tm.Enabled = true;
        }
 
        void tm_Tick(object sender, EventArgs e) {
            lb.Text = (someVar++).ToString();
        }
 
        int someVar;
        Timer tm = null;
        Label lb = null;
    }
}
1
ushim
170 / 171 / 54
Регистрация: 01.06.2011
Сообщений: 507
19.06.2011, 20:36 5
Вот другой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int i = 0;
        int n = 9001;
        private void label(int l)
        {
            label1.Text = l.ToString();
        }
 
        Timer t = new Timer();
        private void Form1_Load(object sender, EventArgs e)
        {
            t.Interval = 1;
            t.Tick += new EventHandler(t_Tick);
            t.Start();
        }
 
        void t_Tick(object sender, EventArgs e)
        {
            if (i == n)
                t.Enabled = false;
            label(i);
            i++;
        }
Добавлено через 51 секунду
ой, я опоздал
1
Genu
54 / 54 / 11
Регистрация: 07.03.2010
Сообщений: 157
19.06.2011, 20:41 6
Цитата Сообщение от ushim Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
int i = 0;
int n = 9420; // Число, которое в конце концов должно быть записано в лэйбл
while (true)
{
    label1.Text = i.ToString();
    System.Threading.Thread.Sleep(1); // задержка в 1 мили секунду
    if (i == n)
        break;
}
Добавлено через 5 минут
А нет, Метод System.Threading.Thread.Sleep(1); приостанавливает работу этого потока, в итоге мы в бесконечном цикле
C#
1
2
3
4
5
6
7
8
 
int i = null;
while (true)
{
    i++;
    label1.Text = i.ToString();
    System.Threading.Thread.Sleep(1); // задержка в 1 мили секунду
}
И всё. После условие поставить и если условие true - break;
1
ushim
170 / 171 / 54
Регистрация: 01.06.2011
Сообщений: 507
19.06.2011, 20:47 7
Genu, у меня при таком раскладе в лэйбл записывал lat
0
Killster
181 / 184 / 17
Регистрация: 26.11.2010
Сообщений: 511
19.06.2011, 20:47 8
C#
1
int i = null;
Это как вообще?
1
ushim
170 / 171 / 54
Регистрация: 01.06.2011
Сообщений: 507
19.06.2011, 20:51 9
Killster, это никак нельзя. Но даже при
C#
1
int i = 0;
У меня всё равно что-то не то записывал
0
Genu
54 / 54 / 11
Регистрация: 07.03.2010
Сообщений: 157
19.06.2011, 21:24 10
Цитата Сообщение от Killster Посмотреть сообщение
C#
1
int i = null;
Это как вообще?
Ошибка. int i = 0;


Genu, у меня при таком раскладе в лэйбл записывал lat
Он не сможет вам показать сразу. Так как выполнение идёт в этом же потоке, в котором отображение. То есть весь поток занимается прибавлением и ожиданием. А вот с таймером будет по-другому и отображаться будет так как задумано Версия Koran'a, по моему мнению, хорошая для данного случая.
0
FakiR
Level 2
396 / 270 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
Завершенные тесты: 1
19.06.2011, 23:47 11
Цитата Сообщение от ushim Посмотреть сообщение
Killster, это никак нельзя.
C#
1
int? i = null; //вот так можно
0
ushim
170 / 171 / 54
Регистрация: 01.06.2011
Сообщений: 507
19.06.2011, 23:49 12
FakiR, только в этом коде смысла нет так делать
0
FakiR
20.06.2011, 01:52     Подскажите как создать форму, при запуске которой значение Label1 будет увеличиваться каждую миллисекунду?
  #13

Не по теме:

Цитата Сообщение от ushim Посмотреть сообщение
FakiR, только в этом коде смысла нет так делать
конечно нету, я просто показал что так можно.

0
20.06.2011, 01:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 01:52
Привет! Вот еще темы с ответами:

Создать пользовательскую форму, с помощью которой можно вычислить значение функции
10. Создайте пользовательскую форму, с помощью которой можно вычислить значение...

Как при нажатии кнопки на Form1 присвоить Label1 из Form2 значение
Создал 2 формы, в обработчике Button1 написал следующий код, но ничего не...

Подскажите как получить форму на которой расположен контрол
привет есть форма на ней контрол как получить ссылку на форму при этом...


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

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

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