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

Button blink

28.05.2019, 03:21. Показов 3560. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Привет!
Когда форму запускаешь тогда моргает буттон 1, при нажатие на буттон 1, маргает буттон 2. При нажатие на буттон 2 маргает буттон 1.
Но когда опять нажимаешь на буттон 1 то буттон 2 больше не моргает. Это происходит через раз только с морганием буттон 2.
Где в коде я ошибся?
Вложения
Тип файла: 7z POGA.7z (127.6 Кб, 4 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2019, 03:21
Ответы с готовыми решениями:

Я не понимаю строчку "button = e.Button;"
Имеется код: string text; MouseButtons button; button = e.Button; if (button == MouseButtons.Left) ( text = "левую"; } ...

Если Button 1 и Button 2 нажаты - Button 3 стала активной, как?
Проверка если Button 1 и Button 2 нажаты - Button 3 стала активной Причем нужно чтобы это срабатывало только после того как вторая...

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

13
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
30.05.2019, 11:30  [ТС]
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
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;
 
namespace POGA
{
    public partial class Form1 : Form
    {
        bool toggleLight = true;
        bool toggleLight2 = true;
        Timer t = new Timer();
        Timer t2 = new Timer();
        public Form1()
        {
            InitializeComponent();
        }
       void Form1_Load(object sender, EventArgs e)
        {
            button2.Enabled = false;
            t.Interval = 400;
            t.Tick += new EventHandler(t_Tick);
            t.Start();
        }
       async void t_Tick(object sender, EventArgs e)
        {
            if (toggleLight)
            {
                button1.BackColor = Color.LightCoral;
                toggleLight = false;
            }
            else
            {
                button1.BackColor = Color.WhiteSmoke;
                toggleLight = true;
            }
 
        }
        async void t2_Tick(object sender, EventArgs e)
        {
            if (toggleLight2)
            {
                button2.BackColor = Color.LightCoral;
                toggleLight2 = false;
            }
            else
            {
                button2.BackColor = Color.WhiteSmoke;
                toggleLight2 = true;
            }
        }
        void Button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button1.BackColor = Color.LimeGreen;
            button1.Text = "Connected";
            button2.Enabled = true;
            t2.Interval = 350;
            t2.Tick += new EventHandler(t2_Tick);
            t2.Start();
            t.Stop();
        }
 
         void Button2_Click(object sender, EventArgs e)
        {
            button2.BackColor = Color.WhiteSmoke;
            button2.Enabled = false;
            button1.Enabled = true;
            button1.Text = "Connect";
            t2.Stop();
            t.Start();
        }
    }
}
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
30.05.2019, 18:30  [ТС]
Никто не может дать совет моеи проблемы?
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
30.05.2019, 18:48
Цитата Сообщение от Felikss Посмотреть сообщение
Никто не может дать совет моеи проблемы?
Поясните, что Вы хотите, чтобы было, и в чем сейчас проблема. А то не очень понятно...
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
30.05.2019, 21:21  [ТС]
Когда форму запускаешь тогда моргает буттон 1, при нажатие на буттон 1, маргает буттон 2. При нажатие на буттон 2 маргает буттон 1.
Но когда опять нажимаешь на буттон 1 то буттон 2 больше не моргает. Это происходит через раз только с морганием буттон 2.
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
31.05.2019, 07:03
Felikss, если бы я хотел, чтобы Вы скопировали текст из первого поста, я бы так и написал. Или Вы думаете, что чем больше раз Вы одно и то же напишете, тем понятнее будет?
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
31.05.2019, 12:49  [ТС]
Программа будет для того чтобы при нажатие на первую кнопку соединится с база данных и вторая отключится от база данних.
1. Идея в том что когда запускаешь программу тогда Первая кнопка должна мигать, чтобы сотрудник знал что надо соединится с базой данних. вторая кнопка должна быть неактивной.
при нажатие на первую кнопку она должна стать зеленои и неморгать. а вторая кнопка отсоединится от база данных должна моргать чтобы сотрудник знал что надо отсоединиться от базы а потом закривать программу.

Это я сделал, но проблема в том что если незакривать саму программу и нажать повторно на первую кнопку, то вторая больше не моргает и ето происходит через раз.
попробуйте запустит мою программу и попробовать нажать на первую кнопку потом на вторую, опять первую, и опять вторую. увидите в чём проблема. По другому свою проблему не могу объяснить.

Я еще не думал как соединить ProgressBar с кнопками!
При нажатие первую кнопку ProgressBar должен доходить до 100%, а при нажатие второи кнопки ProgressBar должен со 100% доходить до 0%, Типо revers.
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
31.05.2019, 13:11
Лучший ответ Сообщение было отмечено Felikss как решение

Решение

Цитата Сообщение от Felikss Посмотреть сообщение
если незакривать саму программу и нажать повторно на первую кнопку
Так делайте кнопку не активной при нажатии, чтобы не было возможности на нее нажать, если это не предусмотрено логикой программы
Цитата Сообщение от Felikss Посмотреть сообщение
Я еще не думал как соединить ProgressBar с кнопками!
Я, конечно, не очень понимаю, для чего нужен прогрессбар при подключении/отключении к БД... Это, вроде, не настолько длительный процесс, чтобы нужно было его визуализировать... Но если уж очень хочется, то можно, либо запускать таймер, в котором изменять значение прогрессбара, либо запускать в отдельном потоке цикл и уже в цикле изменять значение
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
31.05.2019, 13:29  [ТС]
Сотрудник открывает программу и нажимает на первую кнопку, потом он отсоединяется нажимая на вторую кнопку.
Потом захотел опять соидиница и назимает первую кнопку. А вторая кнопкa не моргает а должна моргать.
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
31.05.2019, 14:26
Лучший ответ Сообщение было отмечено Felikss как решение

Решение

Цитата Сообщение от Felikss Посмотреть сообщение
Потом захотел опять соидиница и назимает первую кнопку. А вторая кнопкa не моргает а должна моргать.
Ааа! Все, теперь понятно!

Добавлено через 5 минут
Цитата Сообщение от Felikss Посмотреть сообщение
А вторая кнопкa не моргает а должна моргать.
В общем, не понял, если честно, в чем была проблема... Но вот так все нормально работает:
Кликните здесь для просмотра всего текста
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
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace BlinkingButtons
{
    public partial class Form1 : Form
    {
        bool toggleLight1 = true;
        bool toggleLight2 = true;
        Timer t1 = new Timer();
        Timer t2 = new Timer();
        public Form1()
        {
            InitializeComponent();
            button2.Enabled = false;
            t1.Interval = 500;
            t2.Interval = 500;
            t1.Tick += t1_Tick;
            t2.Tick += t2_Tick;
            t1.Start();
        }
        void t1_Tick(object sender, EventArgs e)
        {
            button1.BackColor = toggleLight1 ? Color.LightCoral : Color.WhiteSmoke;
            toggleLight1 = !toggleLight1;
        }
        void t2_Tick(object sender, EventArgs e)
        {
            button2.BackColor = toggleLight2 ? Color.LightCoral : Color.WhiteSmoke;
            toggleLight2 = !toggleLight2;
        }
        void Button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button1.BackColor = Color.LimeGreen;
            button1.Text = "Connected";
            button2.Enabled = true;
            t2.Start();
            t1.Stop();
        }
 
        void Button2_Click(object sender, EventArgs e)
        {
            button2.BackColor = Color.WhiteSmoke;
            button2.Enabled = false;
            button1.Enabled = true;
            button1.Text = "Connect";
            t2.Stop();
            t1.Start();
        }
    }
}
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
31.05.2019, 20:19  [ТС]
Ну вот всё теперь работает отлично. Огромное спасибо вам за помощь asn31337.
ProgressBar визуализация, только для красоты.
Буду пробовать реализовать прогресс бар от 100% до 0%. От 0% до 100% это легко а вот обратно - надо подумать.

Добавлено через 1 час 1 минуту
Зделал от 0% - 100% для первой кнопки.
А для второй кнопки чтобы зеленая полоса отходила назад от 100% до 0% проблема.
Полоса неадходит от 100% - 0% а просто исчезает.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 void Button1_Click(object sender, EventArgs e)
        {
            int a;
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;
            for (a=0; a<=100; a++)
            {
                progressBar1.Value = a;
            }
  void Button2_Click(object sender, EventArgs e)
        {
            int b;
            progressBar1.Maximum = 100;
            progressBar1.Minimum = 0;
            for (b=100; b>=0; b--)
            {
                progressBar1.Value = b;
            }
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
01.06.2019, 09:07
Лучший ответ Сообщение было отмечено Felikss как решение

Решение

Цитата Сообщение от Felikss Посмотреть сообщение
Полоса неадходит от 100% - 0% а просто исчезает.
Потому что:
1. Цикл запускается в основном потоке. При этом этот поток блокируется.
2. Цикл выполняется очень быстро - буквально за несколько миллисекунд.
Для решения этой проблемы нужно, как я уже говорил выше, либо использовать таймер, либо цикл запускать в другом потоке (плюс делать в каждой итерации небольшую задержку, чтобы цикл отрабатывал не мгновенно)
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
08.06.2019, 21:05  [ТС]
Привет!
Типо получилос, но когда запускаешь программу, нажав на Connect (Button1) всё ок. Нажав на Disconnect (Button2) тоже всё ок и повторно опять на button1 всё отлично, но уже Disconnect (Button2) надо нажимать 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
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
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;
 
namespace ProgressBar_with_Button
{
    public partial class Form1 : Form
    {
        int incr = 1;
 
        public Form1()
        {
            InitializeComponent();
 
        }
 
         void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Enabled = false;
            button2.Enabled = false;
        }
 
 
        void Button1_Click(object sender, EventArgs e)
        {
            TimConnect.Enabled = true;
            
        }
 
        void TimConnect_Tick(object sender, EventArgs e)
        {
            progressBar1.Increment(5);
            label1.Text = progressBar1.Value.ToString() + "%";
 
            {
                if (progressBar1.Value == 100)
                {
                    TimConnect.Stop();
                    
                    textBox1.Enabled = true;
                    textBox1.Enabled = true;
                    button1.Enabled = false;
                    button1.BackColor = Color.LimeGreen;
                    button1.Text = "Connected";
                    button2.Enabled = true;
                }
            }
        }
 
        void Button2_Click(object sender, EventArgs e)
        {
            TimDisconnect.Enabled = true;
            incr = (incr > 0) ? -1 : 1; 
        }
 
       void TimDisconnect_Tick(object sender, EventArgs e)
        {
 
            if (progressBar1.Value + incr <= 100 && progressBar1.Value + incr >= 0)
            {
 
                progressBar1.Value += incr;
                button1.Enabled = false;
                button2.Enabled = false;
                label1.Text = progressBar1.Value.ToString() + "%";
                TimDisconnect.Enabled = true;
 
                {
                    if (progressBar1.Value == 0)
                    {
                        TimDisconnect.Stop();
                        textBox1.Enabled = false;
                        button1.Enabled = true;   
                    }
                }
            }
        }
    }
}
Вложения
Тип файла: 7z ProgressBar with Button.7z (265.6 Кб, 2 просмотров)
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
12.06.2019, 15:13  [ТС]
Проблема еще не решилась.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2019, 15:13
Помогаю со студенческими работами здесь

Помогите побороть blink
Добрый день. Пытаюсь разобраться с миганием светодиода, но ничего не выходит. У меня отладочная плата с STM32F103C8T6, вот такая: ...

STM32-H103+ST-Link/V2+Blink = need help.
минутка истерикиКАК? КАК ВЫ ПРОГРАММИРУЕТЕ ЭТИ @#!$ STM32F***g. То IDE висит, то МК, то дебаггер не работает. Уже угробил 2 недели...

Ни led blink, ни реакции на main.c в Coocox
Добрый день! Пробую поморгать светодиодом. Сделал все как в видеоуроке https://www.youtube.com/watch?v=cJxjfAhvpUw Даже...

textcolor(magenta+blink) как понять?
обесните что делает blink... clreol; и это ещё встретил а что делает никак понять не могу...

Blink-браузеры не правильно обрабатывают тень
http://waa.ai/4w3T При масштабировании колесиком тень выставляется неверно - между тенью и объектом появляется белая полоса. Как...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru