Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 7
1
.NET 3.x

Как сделать чтобы кнопка в форме сама нажималась спустя 5 секунд?

13.02.2016, 11:08. Просмотров 1832. Ответов 9
Метки нет (Все метки)

Как в C# 2010 express сделать чтоб кнопка в форме сама нажималась спустя 5 сек?
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
98
99
100
101
102
103
104
105
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AvrUsbDevice;
using System.Timers;
 
namespace LedTest
{
    public partial class Form1 : Form
    {
        bool ledOn = false;                 // Флаг включен (true) или нет (false) светодиодик на плате
        ushort vid = 0x16C0, pid = 0x05DC;  // Тут комментарии излишни - это VID и PID
        ATMega8 dev;                       // Объявляем объект типа ATMega16(так в оригинале я заменил на М8)
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
           {
            dev = new ATMega8(vid, pid);   // Создаем объект dev класса ATMega16. 
            if (!dev.IsOpen())              // Если есть проблемы с USB - сообщим и выйдем
            {
                MessageBox.Show(String.Format("Невозможно найти устройство vid = 0x{0:X}, pid = 0x{1:X}", vid, pid),
                                              "Ошибка USB", MessageBoxButtons.OK, MessageBoxIcon.Error);
                {
 
                }
                Close();
            }
            else                            // Если все хорошо, настроим микроконтроллер по USB
            {
                dev.DDRB |= 0x3f;           // Пины bx00111111 порта B - на вывод
                dev.PORTB &= 0x00;          // Выключим светодиодик на плате
                dev.DDRC |= 0x3f;           // Пины bx00111111 порта C - на вывод
                dev.PORTC &= 0x00;          // Выключим светодиодик на плате
                dev.DDRD |= 0xeb;           // Пины bx11101011 порта D - на вывод
                dev.PORTD &= 0x00;          // Выключим светодиодик на плате
                //dev.DDRA |= 0x55;         // для меги 16-32
                //dev.PORTA &= 0x00;          // Выключим светодиодик на плате
            }
        }
 
        // работа с портом B ++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private void button1_Click(object sender, EventArgs e)
        {
 
            ledOn = !ledOn;
            if (ledOn)
 
            {
                dev.PORTB |= 0x01;  // Включим реле на плате
                panel1.BackColor = Color.Red;
                //System.Threading.Thread.Sleep(5000);
             }
                        
            else
             {
                
                dev.PORTB &= 0x00;  // Выключим светодиодик на плате
                dev.PORTC &= 0x00;  // Гасим все в порту С !
                dev.PORTD &= 0x00;  // Гасим все в порту D !
                panel1.BackColor = Color.LightYellow;
                panel2.BackColor = Color.LightYellow;
                panel3.BackColor = Color.LightYellow;
                panel4.BackColor = Color.LightYellow;
                panel5.BackColor = Color.LightYellow;
                panel6.BackColor = Color.LightYellow;
                panel7.BackColor = Color.LightYellow;
                panel8.BackColor = Color.LightYellow;
                panel9.BackColor = Color.LightYellow;
                panel10.BackColor = Color.LightYellow;
                panel11.BackColor = Color.LightYellow;
                panel12.BackColor = Color.LightYellow;
                panel13.BackColor = Color.LightYellow;
                panel14.BackColor = Color.LightYellow;
                panel15.BackColor = Color.LightYellow;
                panel16.BackColor = Color.LightYellow;
                panel17.BackColor = Color.LightYellow;
                panel18.BackColor = Color.LightYellow;
                               
                
            }
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            ledOn = !ledOn;
            if (ledOn)
            {
                dev.PORTB |= 0x02;  // Включим светодиодик на плате
                panel2.BackColor = Color.Red;
            }
            else
            {
                otkl(); // убрал нагромождение строк 
            }
        }
это кусок кода, всего таких фрагментов 18. Я на удаленном компе перегружаю зависшие устройства. Оригинал взял у micrisin.ru но там под М16 я переделал под М8, все работает. А вдруг в момент коммутации комп -украдут, к примеру.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2016, 11:08
Ответы с готовыми решениями:

Как добится чтобы кнопка button нажималась сама при загрузке страницы
Навеяло отсюда: https://www.cyberforum.ru/html/thread203878.html День добрый, прошу подсказать: ...

как сделать чтобы кнопка пробел нажималась автоматически?
в игре на однокласниках нужно постоянно нажимать пробел! подскажите как сделать чтобы это было...

Как сделать, чтобы при нажатии кнопки 1 нажималась кнопка 2
Как сделать так, что я, например, кликаю на кнопку 1, и после клика происходил автоматический клик...

Как сделать чтобы при нажатии на enter кнопка не нажималась
Всем привет. Есть текстовое поле и кнопка(который появляется после клика по рекламе). Есть одна...

9
192 / 189 / 96
Регистрация: 14.03.2015
Сообщений: 750
Записей в блоге: 1
13.02.2016, 11:48 2
Чтобы именно кнопка нажималась или вызывался обработчик нажатия кнопки?
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 7
13.02.2016, 19:15  [ТС] 3
Да, вызывался сам обработчик имитирующий нажатие кнопки на форме. Для контроля я использую тайм вьювер и ТВ тюнер. вдруг произойдет зависание компа или оборвется связь. Это моя первая программа с 1994 года.
0
192 / 189 / 96
Регистрация: 14.03.2015
Сообщений: 750
Записей в блоге: 1
13.02.2016, 19:26 4
Ну, например, можете вызывать метод-обработчик button_Click(null, null) по таймеру или там, где вам нужно.
Где button_Click - обработчик нужной кнопки.
1
963 / 859 / 348
Регистрация: 26.04.2012
Сообщений: 2,648
14.02.2016, 06:06 5
Лучший ответ Сообщение было отмечено ojakov как решение

Решение

ojakov, наипростейший способ сделать задержку-использовать Task.Delay():
C#
1
2
3
4
5
6
7
8
9
        private void button1_Click(object sender, EventArgs e)
        {
            DoSomethingAfter5Seconds();
        }
        public async void DoSomethingAfter5Seconds()
        {
            await Task.Delay(5000);
            MessageBox.Show("5 секунд прошли!");
        }
В результате при нажатии на button1 через 5 секунд появится MessageBox. GUI не виснет.

Добавлено через 2 минуты
Чтобы вызывать непосредственно обрабочик нажатия кнопки, можно использовать button1.PerformClick();, но логичнее было бы функционал из обработчика вынести в свой метод, и его уже вызывать.
3
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 7
14.02.2016, 15:08  [ТС] 6
Элемент "Task" не существует в текущем контексте- так 2 а раза.
Элемент "Stopwatch" не существует в текущем контексте- так 2 а раза.
Не удалось найти имя типа или пространства имен "Stopwatch" (пропущена директива using или ссылка на сборку?)
Пишу под W10-64 но сама программа будет работать в ХР-32.
0
963 / 859 / 348
Регистрация: 26.04.2012
Сообщений: 2,648
14.02.2016, 15:12 7
ojakov, ну так добавьте соответствующие usingи. На счет Task-версия .NET должна быть не ниже 4.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 7
14.02.2016, 17:03  [ТС] 8
Спасибо, вроде вник немного но, на работе 1-о ядерный целерон с касперским и ХР-32, дома 4х4 и В10-64.
Всю работу дома не хочется делать потому и пользую NET 3.5 для совместимости, C# экспресс 2010.

ledOn = !ledOn;
if (ledOn)
{
dev.PORTB |= 0x01; // Включим реле на плате
panel1.BackColor = Color.Red;
System.Threading.Thread.Sleep(5000);
button1_Click(null, null);
{
вот последние две строки вставил заработало, но перестала работать строка panel1.BackColor = Color.Red;
это в форме для наглядности красный квадратик загорался.
0
963 / 859 / 348
Регистрация: 26.04.2012
Сообщений: 2,648
14.02.2016, 17:38 9
ojakov, ну тогда таймер используйте. Он есть и в старом .NET. Да и, насколько я помню, писали, что 4тый .NET таки на XP реально поставить. Но от неудобного старья, конечно, всегда лучше отказаться А Thread.Sleep() останавливает поток, в котором выполняется, а соответственно GUI зависнет, если его вызывать в потоке формы.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 7
16.02.2016, 16:08  [ТС] 10
Всем спасибо, использовал стандартную форму таймера из панели элементов. timer1.Start();
В свойствах ставится время.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2016, 16:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Как сделать, чтобы при запуске программы кнопка автоматически нажималась?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Чтоб кнопка нажималась сама через 1 сек
в общем есть сайт,точнее страница у меня на компе (*.mht) на ней есть кнопка...есть поля ввода...

Как сделать, чтобы сначала нажималась кнопка с цифрой, потом она выводилась, а потом только проверялось больше/меньше/равно загаданному числу
uses graphabc,ABCButtons; var p,c,i,n,y,g,f,d,o,u,h:longint; l,s:string;...

Как сделать чтобы кнопка появлялась через 10 секунд?
Я пишу сайт, и мне надо чтобы при открытии сайта через несколько секунд выскакивала кнопка(это...

Как сделать, чтобы кнопка на сайте была недоступна 60 секунд?
У меня на сайте на странице регистрации выведены правила, а в конце кнопки: "Принимаю" и "Не...


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

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

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