ユーザーが 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;