我目前正在使用Visual Basic(.Net 3.0,VisualStudio 2010)开发AutoCAD 2008 Addin。
我可以定义自己的命令,我希望用户能够通过按ESC键来取消命令。
在AutoCAD 2010或更高版本中,存在
HostApplicationServices.Current.UserBreak
方法。但不是在ACAD 2008中。
有没有人有任何建议,用户如何取消我的命令?
答案 0 :(得分:1)
不确定这是否是你想要的,但我会把它扔出去。在以下示例中,它会提示用户输入并将其存储到getPointResult。如果用户此时选择“Escape”,则getPointResult.Status将不是PromptStatus.OK,因此它不会执行'if'语句中的代码。
抱歉,这是用C#编写的,但应该很容易理解一般的想法。
[CommandMethod("test", CommandFlags.Session)]
public void Test()
{
PromptPointOptions getPointOptions = new PromptPointOptions("Select the top-left location for the view: ");
Document currentDocument = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
PromptPointResult getPointResult = currentDocument.Editor.GetPoint(getPointOptions);
if (getPointResult.Status == PromptStatus.OK)
{
//Do work
}
else
{
//what to do if 'ESC' is pressed during GetPoint()
}
}