我试图避免用户在使用 Rhinocommon 编写的 Rhino 插件中锁定图层。当插件被初始化时,一个事件处理程序被耦合到 LayerTableEvent 使用
RhinoDoc.LayerTableEvent += this.OnLayerEvent;
事件处理程序定义为
public void OnLayerEvent(object sender, Rhino.DocObjects.Tables.LayerTableEventArgs e)
{
if (e.NewState.IsLocked)
{
e.Document.Layers[e.LayerIndex].IsLocked = false;
e.Document.Layers[e.LayerIndex].CommitChanges();
}
}
单击 Rhino 图层面板中的锁定时触发该事件,并且if
条件评估为true
图层是否被锁定(if
到达语句内的断点)。但是,事件发生后,图层仍保持锁定状态。是否有可能e.Document.Layers[e.LayerIndex].IsLocked = false;
不锁定图层。还是我在这里错过了其他东西?