Реализация компонента карточки с обработчиками событий
В данном примере, предполагается реализовать для компонента карточки обработчики событий инициализации и закрытия карточки. Предполагается, что интерфейс пользователя был или будет реализован.
using System;
using System.Windows.Forms;
using DocsVision.Platform.ObjectManager;
using DocsVision.Platform.WinForms;
using DocsVision.Platform.WinForms.DataSource;
using DocsVision.Platform.CardHost;
namespace DocsVision.Test
{
public sealed partial class TestCard : CardControl
{
private bool isReadOnly;
private bool isChanged;
public TestCard() { }
protected override void OnCardInitialized(EventArgs e) (1)
{
base.OnCardInitialized(e);
InitializeComponent();
}
protected override void OnCardActivated(CardActivatedEventArgs e) (2)
{
base.OnCardActivated(e);
isReadOnly = (e.ActivateMode != ActivateMode.Edit);
isChanged = ((e.ActivateFlags & ActivateFlags.New) = ActivateFlags.New); (3)
}
protected override void OnCardClosing(CardClosingEventArgs e) (4)
{
base.OnCardClosing(e);
if (!isReadOnly && isChanged) (5)
{
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 | Инициируется после активации компонента карточки Windows-клиентом. |
3 | Проверка режим редактирования, либо чтения. |
4 | Возникает до закрытия пользовательского интерфейса карточки. |
5 | Карточка будет сохранять данные только при ActivateMode.Edit и наличии изменений. |