如何让用户取消我的AutoCAD命令

时间:2010-08-30 11:59:59

标签: vb.net autocad

我目前正在使用Visual Basic(.Net 3.0,VisualStudio 2010)开发AutoCAD 2008 Addin。

我可以定义自己的命令,我希望用户能够通过按ESC键来取消命令。

在AutoCAD 2010或更高版本中,存在

HostApplicationServices.Current.UserBreak

方法。但不是在ACAD 2008中。

有没有人有任何建议,用户如何取消我的命令?

1 个答案:

答案 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()
        }
    }