Пособие для партнёров DocsVision




НазваниеПособие для партнёров DocsVision
страница7/35
Дата конвертации12.12.2012
Размер3.06 Mb.
ТипРеферат
1   2   3   4   5   6   7   8   9   10   ...   35

3.3.2Обработка событий


Жизненный цикл компонента карточки предусматривает ряд ключевых событий, которые могут быть обработаны в коде компонента. Обработчики для этих событий уже существуют в базовом классе CardControl, и содержат код, необходимый для нормального функционирования компонента карточки. Однако при желании разработчик может переопределить одно или несколько из этих событий, чтобы реализовать в них собственную логику.

icon_prim

Примечание

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

Базовый класс предусматривает всего 8 основных событий:

  • OnCardInitialized(EventArgs e) – это событие инициируется после создания компонента карточки, и передачи ей актуальных данных (инициализируются объекты CardData и UserSession). Аргументы события (EventArgs) – стандартные.

  • OnCardActivating(CardActivatingEventArgs e) – событие инициируется до активации компонента карточки Навигатором (отображения пользовательского интерфейса). В этом событии можно выполнить первичную инициализацию элементов управления. Аргументы события (CardActivatingEventArgs) содержат:

    • ActivateMode – режим активации карточки:

      • Edit = 1 (редактирование)

      • ReadOnly = 2 (только чтение)

      • Preview = 3 (предварительный просмотр в Навигаторе)

      • Select = 4 (открытие справочника на выбор)

    • ActivateFlags – дополнительные флаги активации карточки (битовая маска):

      • None = 0 (флаги отсутствуют)

      • ModalWindow = 0x01 (карточка открыта модально)

      • FolderPanel = 0x02 (карточка папки)

      • New = 0x04 (создан новый экземпляр данных карточки)

      • NewFromTemplate = 0x08 (новая карточка из шаблона)

      • ByShortcut = 0x10 (карточка открыта по ярлыку)

      • ByUrl = 0x20 (карточка открыта по ссылке)

      • ReadOnly = 0x40 (карточка открыта только для чтения)

      • NoCreateNew = 0x80 (запрет создания новых карточек в этой же папке)

    • ActivateParams – дополнительные параметры, которые были переданы карточке вызывающей стороной при ее открытии методом CardHost.SelectFromCard. Вызывающая сторона при этом может передать параметры, уточняющие область выбора, начальное значение, и т.д.

    • ActionFlags – действия, которые должен выполнить Навигатор после обаботки события (битовая маска):

      • None = 0x0000 (ничего не делать)

      • ContinueAction = 0x0001 (продолжить текущее действие, если этот флаг не установить – то действие будет прервано!)

      • CommittedData = 0x0002 (данные карточки сохранены, можно закрывать)

      • NoShortcuts = 0x0100 (не создавать ярлык для карточки при ее закрытии)

      • WantReturn = 0x0200 (передавать карточке нажатия клавиши Enter – тогда как в стандртном режиме Навигатор сам перехватывает эти нажатия, и использует их как сигнал к закрытию карточки)

      • HideFrame = 0x0400 (скрыть окно карточки)

      • ChangeWantReturn = 0x0800 (признак, что карточка хочет изменить поведение Enter)

      • WantAllKeys = 0x1000 (передавать карточке коды всех нажатых клавиш – тогда как в стандартном режиме Навигатор перехватывает нажатия системныъх клавиш, таких как Tab, Esc и т.д.)

      • ChangeWantAllKeys = 0x2000 (признак, что карточка хочет изменить поведение системных клавиш)

      • HideStatusBar = 0x4000 (скрыть строку статуса в окне карточки)

  • OnCardActivated(CardActivatedEventArgs e) - событие инициируется после активации компонента карточки Навигатором. Аргументы события (CardActivatedEventArgs) аналогичны предыдущему, за исключением ActionFlags - т.к. данное событие инициируется уже пост-фактум, и карточка уже не может изменить поведение Навигатора

  • OnCardClosing(CardClosingEventArgs e) – событие возникает до закрытия пользовательского интерфейса карточки. Позволяет воспрепятствовать закрытию, если не выполнены все необходимые для этого условия. Аргументы события (CardClosingEventArgs) содержат параметр ActionFlags, управляющий поведением Навигатора (см. выше)

  • OnCardClosed(EventArgs e) - событие возникает после закрытия пользовательского интерфейса карточки, и позволяет, например, очистить элементы управления. Аргументы события (EventArgs) – стандартные

  • OnCardLoaded(EventArgs e) - событие возникает после загрузки компонента карточки в память. Так как Навигатор кэширует загруженные карточки – то это событие возникает только один раз за время ее жизни, но после этого может произвольное количество раз происходить активация карточки для разных объектов данных. Аргументы события (EventArgs) – стандартные

  • OnCardUnloaded(EventArgs e) – событие инициируется при выгрузке компонента карточки из памяти, и позволяет освободить задействованные ресурсы. Аргументы события (EventArgs) – стандартные

  • OnCardAction(CardActionEventArgs e) – специальное событие, которое инициируется при активации пользователем одного из методов карточки. Аргументы события (CardActionEventArgs) содержат следующие значения:

    • ActionID – идентификатор задействованного метода

    • ModeID – идентификатор текущего режима открытия карточки

Последовательность вызова событий в жизненном цикле карточки представлена на схеме:
OnCardInitialized

OnCardActivating

OnCardActivated

OnCardLoaded

OnCardClosing

OnCardClosed

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

icon_attention

Внимание

Следует всегда помнить о том, что Навигатор кэширует компонент карточки в памяти после первого обращения к нему, и впоследствии активирует этот же самый компонент при открытии всех карточек такого типа. Поэтому важно не забывать всегда инициализировать и очищать элементы управления – чтобы в них не осталось данных со времени предыдущей активации.

Пример кода карточки с обработчиками событий:

using System;

using System.Runtime.InteropServices;

using System.Windows.Forms;
using DocsVision.Platform.ObjectManager;

using DocsVision.Platform.WinForms;

using DocsVision.Platform.WinForms.DataSource;
namespace DocsVision.Test

{

[ComVisible(true)]

[Guid("221D8441-BEE9-4CAE-A59B-2007B6EEF5CF")]

[ClassInterface(ClassInterfaceType.None)]

public sealed partial class TestCard : CardControl

{

private bool isReadOnly;

private bool isChanged;
public TestCard()

{

}
protected override void OnCardInitialized(EventArgs e)

{

base.OnCardInitialized(e);
InitializeComponent();

}
protected override void OnCardActivated(CardActivatedEventArgs e)

{

base.OnCardActivated(e);
isReadOnly = (e.ActivateMode != ActivateMode.Edit);

isChanged = ((e.ActivateFlags & ActivateFlags.New) ==

ActivateFlags.New);

}
protected override void OnCardClosing(CardClosingEventArgs e)

{

base.OnCardClosing(e);
if (!isReadOnly && isChanged)

{

e.ActionFlags = ActionFlags.None;
MessageResult result = ShowMessage(“Сохранить изменения?”,

“Карточка”,

null,

MessageType.Question,

MessageButtons.YesNoCancel);
switch (result)

{

case MessageResult.Yes:

e.ActionFlags = ActionFlags.ContinueAction |

ActionFlags.CommittedData;

break;
case MessageResult.No:

e.ActionFlags = ActionFlags.ContinueAction;

break;
default:

break;

}

}

}

}

}
1   2   3   4   5   6   7   8   9   10   ...   35

Похожие:

Пособие для партнёров DocsVision iconУстановка патчей *. msp DocsVision Установить патч можно только на клиентах DocsVision (но не на сервере) Установка патчей библиотек DocsVision
Скопируйте пакет в папку «Директория с установленным DocsVision\Platform 3\Server\Site\Setup». В данной директории можно создать...
Пособие для партнёров DocsVision iconDocsVision 6 sr1: Руководство по установке и настройке
Особенности конфигурации серверного программного обеспечения для установки DocsVision 5
Пособие для партнёров DocsVision iconВы  держите  в  руках  брошюру  для  партнеров  1с,  которая поможет вам повысить продажи. Речь идет не о  продажах вообще, а о возможности более эффективно  предлагать  клиентам  серверные  продукты  Microsoft, 
Приложение Полезные ресурсы для партнеров  26 вы  держите  в  руках  брошюру  для  партнеров  1с, 
Пособие для партнёров DocsVision iconРекомендации по созданию условий для эффективного функционирования стратегических партнерств с участием учреждений профобразования Роль вуза в подготовке кадров для стратегических партнеров и участников кластера
В части подготовки кадров для стратегических партнеров и участников кластера можно выделить две глобальные цели
Пособие для партнёров DocsVision iconНастоящий документ описывает конфигурирование системы DocsVision 5 и дальнейшее ее администрирование, а именно

Пособие для партнёров DocsVision iconУчебное пособие по курсу «Организация эвм, комплексов и сетей» часть I
Пособие предназначено для самостоятельной работы студента над курсом “Организация эвм, комплексов и сетей” по первой части курса...
Пособие для партнёров DocsVision iconПеречень предприятий Южного Федерального округа, которые выпускают продукцию, возможно интересную для иностранных партнеров
Южного Федерального округа, которые выпускают продукцию, возможно интересную для иностранных партнеров
Пособие для партнёров DocsVision iconИнструкция по внедрению  «1С: Университет»  версия 0 12  (для партнеров фирмы «1С»)
Общие сведения    4 
Пособие для партнёров DocsVision iconПособие для воспитателей Кишинев, 2010 czu 373. 2
...
Пособие для партнёров DocsVision iconСпециалист по технологическому развитию партнеров 
Интеллектуальные объединенные коммуникации для бизнеса (Microsoft Exchange и Lync) 
Разместите кнопку на своём сайте:
kak.znate.ru


База данных защищена авторским правом ©kak.znate.ru 2012
обратиться к администрации
KakZnate
Главная страница