-1
私は、2つのポイントをプロンプトしてそれらの間に線を引くための簡単なスクリプトを作成しようとしています。ユーザーがコマンド(ESCにヒット)中にキャンセルすると、プログラム全体が致命的な例外でクラッシュする "promptForPoint(promptMsgEnd)"部分まで完全に正常に動作します。一時的なグラフィックに対する私のアプローチは合理的に正しいですか?キャンセルするユーザーを適切に処理するにはどうすればよいですか?AutoCAD .NET - 一時的なグラフィック..私のアプローチは正しいですか?
IntegerCollection ints = new IntegerCollection(new int[] { });
TransientManager ctm = TransientManager.CurrentTransientManager;
Line l = new Line(startPoint, new Point3d(startPoint.X + 0.00000001, startPoint.Y, startPoint.Z));
ctm.AddTransient(l, TransientDrawingMode.DirectShortTerm, 128, ints);
//handle event - pointer movement
PointMonitorEventHandler handler =
delegate (object sender, PointMonitorEventArgs e)
{
l.EndPoint = e.Context.RawPoint;
ctm.UpdateTransient(l, ints);
};
//add handler for visual
_editor.PointMonitor += handler;
//prompt for point
ppr = promptForPoint(promptMsgEnd);
//remove handler and erase
_editor.PointMonitor -= handler;
ctm.EraseTransient(l, ints);