|
Autodesk..EditorInput.Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
Document acDoc = Application.DocumentManager.MdiActiveDocument;
[CommandMethod("Addselectchang")]
public void AddDocEvent()
{
acDoc.ImpliedSelectionChanged += new EventHandler(doc_ImpliedSelectionChanged);
}
[CommandMethod("Removeselectchang")]
public void RemoveDocEvent()
{
acDoc.ImpliedSelectionChanged -= new EventHandler(doc_ImpliedSelectionChanged);
}
public void doc_ImpliedSelectionChanged(object sender, EventArgs e)
{
RemoveDocEvent();
TypedValue value1 = new TypedValue((int)DxfCode.Start, "CIRCLE");
TypedValue[] values = new TypedValue[] { value1 };
SelectionFilter selefilter = new SelectionFilter(values);
PromptSelectionResult pkfall = ed.SelectAll(selefilter);
if (pkfall.Status == PromptStatus.OK)
{
ObjectId[] objectids = pkfall.Value.GetObjectIds();
ed.SetImpliedSelection(objectids);
AddDocEvent();
}
}
程序的目的是选择图中的一个图元,择选中图中所有的圆。现在的问题是能选中所有的圆了,但是按esc不能取消选择,死循环了,怎么办?其中在事件函数的开始和结尾我分别卸载事件,和加载了事件。
|
|