Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
44 / 41 / 35
Регистрация: 27.02.2013
Сообщений: 284
1

Классы Делегаты - выполнение сразу двух событий при запуске программы

08.05.2014, 21:54. Показов 1539. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться в следующем. Сначала нужно создать один класс делегат, в них - метод обработки события. Событию назначается делегат. Затем событие выполняется. Следующий шаг. Нужно создать еще один такой класс делегат с событием. Но как сделать так чтобы выполнялись сразу два события при запуске программы.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Console1
{
    public delegate void MyDeleg(object sender, EventArgs ea);
 
    class Delegat1
    {
        static public event MyDeleg MyEvent;
        static public void MyMet(object sender, EventArgs ea)
        {
            Console.WriteLine("Cобытие1");
            Console.ReadKey();
        }
 
        static void Main(string[] args)
        {
            MyDeleg Z = new MyDeleg(MyMet);
            MyEvent += Z;
            MyEvent(null, new EventArgs());
            
        }
    }
    class Delegat2
    {
        static public event MyDeleg MyEvent2;
        static public void MyMet2(object sender, EventArgs ea)
        {
            Console.WriteLine("Событие2");
            Console.ReadKey();
        }
 
        static void Main2(string[] args)
        {
            MyDeleg Z = new MyDeleg(MyMet2);
            MyEvent2 += Z;
            MyEvent2(null, new EventArgs());
            
        }
    }
       
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2014, 21:54
Ответы с готовыми решениями:

Создание журнала событий при запуске программы
Задача следующая - необходимо чтобы при каждом запуске программы создавался новый журнал событий....

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

При запуске программы консоль сразу вылетает
После обновления visual studio в консоле перестала появляться надпись (для продолжения нажмите...)....

Выполнение кода при запуске программы
Доброго времени суток, понадобилось написать не большую программу которая ищет определенный процесс...

4
36 / 36 / 16
Регистрация: 26.11.2011
Сообщений: 199
09.05.2014, 01:42 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
namespace ConsoleApplication6
{
    namespace Console1
    {
        public delegate void MyDeleg(object sender, EventArgs ea);
 
        class Program
        {
            static void Main(string[] args)
            {
                //объявление нового экземпляра делегата и пердача ему метода
                // с соответствующей сигнатурой
                MyDeleg Z = new MyDeleg(MyMet1);
                MyDeleg y = new MyDeleg(MyMet2);
                //добавляем методы в список методов обрабатывающи событие
                Delegat1.MyEvent += Z;
                Delegat1.MyEvent += y;
                //вызываем метод запускающий событие
                Delegat1.RunEvent(null, EventArgs.Empty);
                Console.ReadLine();
 
            }
            static public void MyMet1(object sender, EventArgs ea)
            {
                Console.WriteLine("Cобытие1");
                Console.ReadKey();
            }
            static public void MyMet2(object sender, EventArgs ea)
            {
                Console.WriteLine("Cобытие2");
                Console.ReadKey();
            }
 
        }
        class Delegat1
        {
            static public event MyDeleg MyEvent;
            //метод который запускает событие
            static public void RunEvent(object o,EventArgs e)
            {
                MyEvent(o,e);
            }
 
        }
    }
}
Сначала нужно создать один класс делегат, в них - метод обработки события.Это как????
в них или в нем?
0
44 / 41 / 35
Регистрация: 27.02.2013
Сообщений: 284
09.05.2014, 01:56  [ТС] 3
1. объявляем класс. 2. объявляем событие. 3 метод обработчика события 4. присвоить метод делегату. 5 назначить событие. 6 зажечь событие. А после всего создать второй такой класс с событием, так чтобы после запуска программы выводились сообщения из одного и второго класса одновременно.
0
36 / 36 / 16
Регистрация: 26.11.2011
Сообщений: 199
09.05.2014, 02:18 4
Вот так?
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
namespace ConsoleApplication6
{
    namespace Console1
    {
        public delegate void MyDeleg(object sender, EventArgs ea);
 
        class Program
        {
            static void Main(string[] args)
            {
                //4. присвоить метод делегату
                MyDeleg Z = new MyDeleg(MyMet1);
                MyDeleg y = new MyDeleg(MyMet2);
                //5. назначить событие
                Delegat1.MyEvent += Z;
                Delegat2.MyEvent2 += y;
                //6 зажечь событие
                Delegat1.RunEvent(null, EventArgs.Empty);
                Delegat2.RunEvent(null, EventArgs.Empty);
                Console.ReadLine();
 
            }
            //3. метод обработчика события
            static public void MyMet1(object sender, EventArgs ea)
            {
                Console.WriteLine("Cобытие1");
            }
            //еще один метод обработки события
            static public void MyMet2(object sender, EventArgs ea)
            {
                Console.WriteLine("Событие2");
                Console.ReadKey();
            }
 
        }
        //1. объявляем класс
        class Delegat1
        {
            //2. объявляем событие
            static public event MyDeleg MyEvent;
            //метод который запускает событие
            static public void RunEvent(object o,EventArgs e)
            {
                MyEvent(o,e);
            }
        }
        //А после всего создать второй такой класс с событием,
        //так чтобы после запуска программы выводились сообщения
        //из одного и второго класса одновременно.
        class Delegat2
        {
            static public event MyDeleg MyEvent2;
            static public void RunEvent(object sender, EventArgs ea)
            {
                MyEvent2(sender, ea);
            }
 
        }
    }
}
Не понятно что означает одновременно? один за другим?
Одно событие может содержать много методов и выполнить их выполнить их за один раз, но последовательно, один за другим!
События тоже не возможно зажечь одновременно, только один за другим!
1
44 / 41 / 35
Регистрация: 27.02.2013
Сообщений: 284
09.05.2014, 10:05  [ТС] 5
Большое спасибо. Сделано так, как нужно.
0
09.05.2014, 10:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2014, 10:05
Помогаю со студенческими работами здесь

Выполнение программы при запуске приложения
Ламерский вопрос: в программе у меня используются 2 формы. Перед началом работы приложения мне...

Выполнение действия при запуске программы
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ...

При запуске программы на Windows 7 она сразу прекращается
Привет. Проблема вот в чем: делал программу в VS 2017 на window 10, но при запуске программы на...

Почему при запуске программы консоль (среда Eclipse C++) сразу закрывается?
Привет всем :P Раньше изучал С++ в Visual Studio , теперь в силу смены ПК на ноут( Asus eee pc 701...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru