public virtual bool CanUnlock { get; }
true if the object currently being edited (selected) can be unlocked; otherwise, it is false.
This property value is true if an AnnObject is currently being edited (selected); in other words, CurrentEditObject property is not null and this AnnObject is currently locked (the IsLocked value of this AnnObject is true). Otherwise, this property value is false.
Use the Unlock method to unlock the object currently being edited (selected).
For more information, refer to Implementing Annotation Security.
using Leadtools.Annotations.Automation;
using Leadtools.Annotations.Engine;
using Leadtools.Codecs;
using Leadtools.Controls;
using Leadtools.Annotations.Rendering;
using Leadtools.Annotations.WinForms;
public void AnnAutomation_Lock()
{
// first add a new object to the automation
AnnRectangleObject rectObj = new AnnRectangleObject();
rectObj.Rect = LeadRectD.Create(100, 100, 800, 800);
rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthD.Create(1));
rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
_automation.Container.Children.Add(rectObj);
_automation.Invalidate(LeadRectD.Empty);
// make sure no objects are selected in the automation
_automation.SelectObject(null);
// Hook to the lock and unlock events
_automation.LockObject += _automation_LockObject;
_automation.UnlockObject += _automation_UnlockObject;
// see if we can lock or unlock the object (this should show a message informing you that no objects are currently selected (bring edited)
LockUnlock(_automation);
// select (edit) the object we have just added
_automation.SelectObject(rectObj);
// see if we can lock or unlock the object (should show the password dialog to lock the object)
LockUnlock(_automation);
_automation.LockObject -= _automation_LockObject;
_automation.UnlockObject -= _automation_UnlockObject;
}
private void LockUnlock(AnnAutomation automation)
{
// first, check if we can lock the object
if (automation.CanLock)
{
// lock this object
automation.Lock();
}
else if (automation.CanUnlock)
{
// unlock this object
automation.Unlock();
}
else
{
Debug.WriteLine("Cannot lock or unlock because no object is currently being edited (selected)");
}
}
void _automation_LockObject(object sender, AnnLockObjectEventArgs e)
{
Debug.WriteLine(string.Format("Lock it, sending password = {0}", "secret"));
e.Password = "secret";
}
void _automation_UnlockObject(object sender, AnnLockObjectEventArgs e)
{
Debug.WriteLine(string.Format("Unlock it, sending password = {0}", "secret"));
e.Password = "secret";
}