Варианты блокирования редактирования объекта
Вариант 1: упреждающее действие
Если становится понятно что объект нужно будет открыть только на чтение ещё до того как он будет открыт, то можно воспользоваться следующим примером:
private void button1_Click(object sender, EventArgs e)
{
ICSSoft.STORMNET.DataObject[] dObjs = objectListView1.GetObjectsByMarks();
foreach (ICSSoft.STORMNET.DataObject d in dObjs)
{
//ключ блокировки нужен для разблокировки объекта (разблокировать объект другим ключом будет невозможно).
Guid key = new Guid();
d.LockObject(key);
OnEditEvent("", d, "");
}
}
В этом случае блокировка в базу отправляться не будет.
Вариант 2: форма уже открыта
public override void Edit(ICSSoft.STORMNET.DataObject dataobject, string contpath, string propertyname, object tag)
{
if (dataobject == null)
return;
if (!((Квалификация)dataobject).Актуально)
{
this.SetEditManagerReadOnly(true);
this.Caption += " (неактуально)";
}
base.Edit(dataobject, contpath, propertyname, tag);
}