Сообщения с тегом ‘EventHandler’
Классы с большим числом событий
Написано admin в 20 Июнь 2008 – 21:46 -Классы с большим числом событий
Как было сказано, каждое событие класса представляется полем этого класса. Если у класса много объявленных событий, а реально возникает лишь малая часть из них, то предпочтительнее динамический подход, когда память отводится только фактически возникшим событиям. Это несколько замедляет время выполнения, но экономит память. Решение зависит от того, что в данном контексте важнее – память или время. Для реализации динамического подхода в языке предусмотрена возможность задания пользовательских методов Add и Remove в момент объявления события. Это и есть другая форма объявления события, упоминавшаяся ранее. Вот ее примерный синтаксис: Read more »
Tags: Console, EventArgs, EventHandler, OnConnect, ReceiverEvs, Remove, Simulate, SimulateEvs, TestManyEvents, value, WriteLine
Находится в Учебник | No Comments »
Классы с событиями, допустимые в каркасе .Net Framework
Написано admin в 20 Июнь 2008 – 21:43 -Классы с событиями, допустимые в каркасе .Net Framework
Если создавать повторно используемые компоненты с событиями, работающие не только в проекте C#, то необходимо удовлетворять некоторым ограничениям. Эти требования предъявляются к делегату; они носят, скорее, синтаксический характер, не ограничивая существа дела.
Перечислю эти ограничения:
- делегат, задающий тип события, должен иметь фиксированную сигнатуру из двух аргументов: delegate <Имя_делегата> (object sender, <Тип_аргументов> args);
- первый аргумент задает объект sender, создающий сообщение. Второй аргумент args задает остальные аргументы – входные и выходные, – передаваемые обработчику. Тип этого аргумента должен задаваться классом, производным от встроенного в .Net Framework класса EventArgs. Если обработчику никаких дополнительных аргументов не передается, то следует просто указать класс EventArgs, передавая null в качестве фактического аргумента при включении события;
- рекомендуемое имя делегата – составное, начинающееся именем события, после которого следует слово EventHandler, например, FireEventHandler. Если никаких дополнительных аргументов обработчику не передается, то тогда можно вообще делегата не объявлять, а пользоваться стандартным делегатом с именем EventHandler.
Tags: delegate, EventArgs, EventHandler, FireEventHandler, Framework, NET, null, sender
Находится в Учебник | No Comments »
Урок 8. Работаем с меню
Написано admin в 20 Июнь 2008 – 19:32 -Урок 8. Работаем с меню
Сейчас мы с вами рассмотрим, как использовать меню (а точнее, главное меню – экземпляр класса MainMenu) в программах на C#. Главное, что мы сделаем – это динамическое добавление пунктов меню и обработчиков для них.
Программа наша будет работать так – при нажатии на кнопку (а это будет единственная кнопка на форме) в главное меню будет добавляться еще один подпункт. Текст на этом подпункте будет очередное число (“1″, “2″, …). При выборе любого пункта меню будет появляться messagebox с текстом, совпадающим с текстом на нажатом пункте меню.
Итак, создайте новый Windows-проект, разместите на форме кнопку и добавьте MainMenu из окна Toolbox.
MainMenu добавится не на саму форму, а ниже (и это логично, так как мы не можем задать точного положения главного меню на форме – x и y, например; так что и особого смысла в расположении на самой форме нет). В меню задайте имя самого первого пунта как “Menu”. Read more »
Tags: button, EventHandler, MainMenu, menuItem, MessageBox, public, string, System, Toolbox, ToString
Находится в Windows и C# | No Comments »
