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

Как сделать так что бы рандом числа моргали?

06.12.2017, 14:11. Показов 1666. Ответов 12

Студворк — интернет-сервис помощи студентам
Привет! Как сделать так чтобы рандомные числа моргали? На Form1 поставил label1 и button1, при нажатий на button1 значения рандом элементов по таймеру выходят в label1. Интервал генераций задаю в textBox1. Но проблема в том что при генерации одинаковых чисел нет интервала между ними, и не заметно генерация второго элемента. Я пробовал
C#
1
2
label9.Visible = !label9.Visible;
System.Threading.Thread.Sleep(100);
но моргание не совпадает с заданным интервалом. Надо чтобы рандомные числа моргали. Вот мой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DateTime startTime = DateTime.Now;            
Timer timer = new Timer();            
Random r = new Random(DateTime.Now.Millisecond);
 
timer.Tick += (s, e) =>
    {
        if (bir == 1) timer.Stop();
             {
                  int n = r.Next(-9, 9);
                  label1.Text = n.ToString();
                  bir--;
             };   
    };
button1.Click += (s, e) =>        
    {
        button1.Enabled = false;         
        label1.Visible = true;
        timer.Interval = Convert.ToInt32(textBox1.Text);  
        bir = 10;          
    };
Добавлено через 20 часов 14 минут
Кто нибудь поможет?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2017, 14:11
Ответы с готовыми решениями:

При нажатии сделать так что бы числа выводились в label по очереди
при нажатии сделать так что бы числа выводились в label по очереди . то есть нажал на кнопку и через цикл выводятся числа , но вот у меня...

В игре есть 2 игрока (вы и компьютер), как сделать так что бы 1 ход был не за компьютером а выбирался на рандом?
В игре есть 2 игрока (вы и компьютер), как сделать так что бы 1 ход был не за компьютером а выбирался на рандом?

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее?
Вот код: #include <iostream> #include <conio.h> using namespace std; int main(){ float a,c; char b; skip: ...

12
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
06.12.2017, 14:39
что вы подразумеваете под моргали?
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 14:39
Вы можете воспользоваться потоком не зависящем от потока основной формы и в нем включать/выключать отображение элемента, создавая видимость моргания. Задержками можете регулировать частоту и длительность моргания.
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
using System.Threading;
/* ... */
DateTime startTime = DateTime.Now;            
Timer timer = new Timer();            
Random r = new Random(DateTime.Now.Millisecond);
 
timer.Tick += (s, e) =>
    {
        if (bir == 1) timer.Stop();
             {
                  int n = r.Next(-9, 9);
                  label1.Text = n.ToString();
                  bir--;
             };   
    };
button1.Click += (s, e) =>        
    {
        button1.Enabled = 
        Thread thread = new System.Threading.Thread(delegate () {
       label1.Visible = true;
      Thread.Sleep(300);
      label1.Visible = false;
      Thread.Sleep(300);
      label1.Visible = true;
      Thread.Sleep(300);
      label1.Visible = false;
      Thread.Sleep(300);
      label1.Visible = true;
       }); thread.Start();
        timer.Interval = Convert.ToInt32(textBox1.Text);  
        bir = 10;          
    };
0
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 24
06.12.2017, 18:52  [ТС]
Цитата Сообщение от bbq Посмотреть сообщение
что вы подразумеваете под моргали?
Под морганием подразумеваю угасание на мгновение. То есть генерируется 10 чисел на label1 по таймеру интервалом 1сек, но когда генерируется одинаковое число мне не заметно появление второго, например выходит цифра 1 и после 1 сек. выходит еще цифра 1, однако на глаза кажется что цифра 1 стоит 2 сек. Надо между ними поставить интервал отключения чтобы было видно следующая генерированная цифра, то есть - моргание.

Добавлено через 4 минуты
Цитата Сообщение от Nalik Посмотреть сообщение
using System.Threading;
Если добавить референс using System.Threading; ругает на
C#
1
Timer timer = new Timer();
Цитата Сообщение от Nalik Посмотреть сообщение
Thread thread = new System.Threading.Thread(delegate ()
Error 3 'System.Threading.Thread' is a 'type' but is used like a 'variable'
Error 1 'Timer' is an ambiguous reference between 'System.Windows.Forms.Timer' and 'System.Threading.Timer'
Error 5 The name 'thread' does not exist in the current context
0
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 24
06.12.2017, 19:05  [ТС]
Цитата Сообщение от bbq Посмотреть сообщение
что вы подразумеваете под моргали?
У меня рандомные числа генерируются на label1 по таймеру в заданном интервале друг за другом как секундомер.
Миниатюры
Как сделать так что бы рандом числа моргали?  
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 19:09
Дома буду скину вам рабочий проект)
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 19:40
Цитата Сообщение от koni Посмотреть сообщение
Если добавить референс using System.Threading; ругает на
Явно укажите
C#
1
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
Во вложении проект в котором при нажатие на button1 начнет мигать label1.
Вложения
Тип файла: rar WindowsFormsApp1.rar (160.9 Кб, 2 просмотров)
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 19:42
Вот гифка как работает
Изображения
 
0
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 24
06.12.2017, 20:42  [ТС]
Цитата Сообщение от Nalik Посмотреть сообщение
Во вложении проект в котором при нажатие на button1 начнет мигать label1.
Цитата Сообщение от koni Посмотреть сообщение
Я пробовал

C#
1
2
label9.Visible = !label9.Visible;
System.Threading.Thread.Sleep(100);
но моргание не совпадает с заданным интервалом.
Это тоже самое!
Изображения
 
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 21:01
Лучший ответ Сообщение было отмечено koni как решение

Решение

Ааа, так свойство нужно изменять в одном потоке с присвоением текста.
И не меняйте свойство на противоположное, а то получится, что отображаться будет каждое второе рандом число.
C#
1
2
3
4
5
6
//label9.Visible = !label9.Visible;
label9.Visible = false;
System.Threading.Thread.Sleep(100);
label9.Visible = true;
int n = r.Next(-9, 9);
                  label1.Text = n.ToString();
Вложения
Тип файла: rar WindowsFormsApp1.rar (165.4 Кб, 1 просмотров)
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 21:05
Гифка
Изображения
 
1
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 24
06.12.2017, 21:27  [ТС]
Надо наверное поставить проверку когда генерируется следующий число время остановится на 1 милисекунд потом сново timerStart(); ?

Добавлено через 3 минуты
Ух сработало Огромное спасибо!
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
06.12.2017, 21:28
koni, а чем этот вариант не устраивает?

Добавлено через 27 секунд
Тогда здорово)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2017, 21:28
Помогаю со студенческими работами здесь

Ветвление + рандом: как сделать так, чтобы при совпадении квадрата местоположения врага и персонажа игра оканчивалась?
Ветвление + рандом. Задача " Найди клад " Как в rand поставить границы ( от 1, к примеру, до 79)? Как в if писать что то по типу...

Игра в "Города", не могу сделать так что бы города компьютер называл на рандом а не по списку
Самая обычная игра в города, нужно назвать город на последнюю букву соверника, но проблема в том что, компьютер называет города по порядку,...

как сделать так, что б из всего графика "показывалась" только его часть от одного задаваемого числа до другого?
program Sinx; uses crt, graph; var gd,gm: integer; xe,ye,xen,xek,yen, yek: integer; xs,ys,kdx,kdy,kt, i: integer; ...

Как сделать,у меня сервер обычная XP,как мне правильно сделать так,что бы некоторые компы отрезать от инета,но не от базы данных(К+ и 1С и т.п)
Система токая,инет идет на модем,с модема идет на хаб,с хаба на всех??? какой прогой лучше воспльзываться?? если есть возможнасть то...

Как сделать так что бы при нажатии одной кнопки сделать разные вещи несколько раз ?
можно взять интегер i, и если оно ровно 1 то делай это а если нет то нет и если кликнуть на кнопку то i ровно 1, так другая кнопка будет...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru