Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2013, 08:16   #1
UtyOmOk
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию События

Всем доброе утро! Помогите разобраться с событиями. Книги, форумы, MSDN часто описывают как работать с событиями которые уже есть "По умолчанию", например Click, MouseMove и т.д. А вот как мне описать свое событие к примеру lableTextChange, пусть неважно каким образом меняется текст лейбла, но при изменении сразу же выдается сообщение(MessageBox), всем заранее спасибо
UtyOmOk вне форума Ответить с цитированием
Старый 03.09.2013, 08:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
пусть неважно каким образом меняется текст лейбла
Событие напрямую связано с механизмом изменения состояния, а ты говоришь что неважно. Как же ты будешь вызывать свое событие, если даже не знаешь как отследить смену текста?
Если хочешь потренироваться с событиями то лучше поставь другую задачу: "В цикле проверяется математический ряд. Каждый 100-й элемент должен быть обработан событием.".
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2013, 08:30   #3
UtyOmOk
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию

Значение каждого сотого элемента заносится в label.text, пример кода можно, если не сложно?
UtyOmOk вне форума Ответить с цитированием
Старый 03.09.2013, 08:34   #4
UtyOmOk
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию

А как тогда CheckedChanged у check box, ведь там не важно мышкой я щелкну или в коде checkBox1.Checked = true; Событие все равно произойдет
UtyOmOk вне форума Ответить с цитированием
Старый 03.09.2013, 09:23   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
А как тогда CheckedChanged у check box,
потому что здесь много событий.
Цитата:
ведь там не важно мышкой я щелкну
событие щелчок левой кнопкой мыши (а еще возможен пробел на клавиатуре)
этИ (и другие) событиЯ (щелчок/нажатие) улавливает (получает) СheckBox.
после этого он (код того самого checkBox) принимает решение что надо сделать (а может решить и не делать этого!)(знает что надо сделать так)
Код:
<я/моя строка>.Checked = true; или наоборот False;
и вот теперь кода он принял решение (выполнил код)
и наступает очередь события CheckedChanged

и поскольку он сам или ты(твой код) выполнил (изменил состояние)
Код:
<я/моя строка>.Checked = true;
Цитата:
Событие все равно произойдет
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 03.09.2013 в 09:32.
evg_m вне форума Ответить с цитированием
Старый 03.09.2013, 09:28   #6
UtyOmOk
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию

Спасибо, надеюсь что когда-нибудь пойму. Вот еще бы пример кода, который просил выше.
UtyOmOk вне форума Ответить с цитированием
Старый 03.09.2013, 09:42   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    //Описываем тип события
    delegate void EventType(int i);

    //Описываем класс, что будет генерить событие
    class Test {
        // У енго есть поле, куда будет указываться обработчик события
        public event EventType NotifyEvent;
        // И метод, который из этого поля событие будет вызывать
        public void Start() {
            for (int i = 0; i < 100; i++) if (i % 10 == 0) NotifyEvent(i);
        }
    }
    class Program
    {
        // В главном классе описываем процедуру-обработчик события
        static void MyEvent(int i){Console.WriteLine("{0}",i);}
        static void Main(string[] args)
        {
            // Создаем клас теста
            Test t = new Test();
            // Указываем ему этот обработчик
            t.NotifyEvent+=MyEvent;
            // Запускаем на тест
            t.Start();
            Console.ReadKey();
        }
    }
}
Читать:
http://www.skillcoding.com/Default.aspx?id=92
http://www.rsdn.ru/article/dotnet/delegat.xml
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2013, 17:03   #8
pashka_dos
Пользователь
 
Аватар для pashka_dos
 
Регистрация: 19.11.2011
Сообщений: 83
По умолчанию

Книга Троелсена "Язык программирования c# 5.0 и платформа .net 4.5" по-моему, наилучший учебник по C#. Очень подробно описывает работу с делегатами и, соответственно, событиями. Есть пример как создать свое событие.
pashka_dos вне форума Ответить с цитированием
Старый 03.09.2013, 17:41   #9
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
for (int i = 0; i < 100; i++) if (i % 10 == 0) NotifyEvent(i);
Примечание: Если никто не подписан на NotifyEvent, то в этом месте будет брошен exception
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 03.09.2013, 18:09   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Примечание:
Я на скорую руку писал, без претензии на посрамление учебников
Пусть автор по ссылкам пройдет лучше.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События azarnik93 Помощь студентам 2 31.08.2013 13:37
С# Обработчик события yulshaz Помощь студентам 7 24.09.2012 08:12
События в WPF. Обращение к компонентам формы из события Casper-SC Общие вопросы .NET 3 25.07.2010 19:03
События session Общие вопросы C/C++ 2 21.06.2010 17:16
События yarilo JavaScript, Ajax 3 28.01.2010 23:18