Autocad .NET - 展开命令行

Autocad .NET - expand command line

我正在开发一个 Autocad .NET 插件(.dll 通过 NETLOAD 加载),我经常使用 Document.Editor 对象来获取用户输入,例如字符串、数字、点和实体。

我希望我的一些提示可以向用户显示多个选项 select(与原生 -DWGUNITS 命令完全一样)。

显示提示和选项非常好(我用 Editor.GetInteger 来做,传递带有选项的多行消息,有时还有一两个关键字)。

但我不知道如何展开命令栏使其显示所有选项(否则用户必须手动展开它才能看到列表)

所以,这是我目前的命令(蓝色的私人内容):

选项仅限于这三行(更改 CLIPROMPTLINES 似乎不是最佳选择,但如果您知道如何使用 .NET,这是一个好的开始)。

.

这就是我想要的:

很简单,这个选项在Autodesk.Autocad.ApplicationServices.Application.DisplayTextScreen:

using Autodesk.Autocad.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;

private int AskUser(IEnumerable<string> userOptions)
{

        Document document= Application.DocumentManager.MdiActiveDocument;
        Editor editor = document.Editor;

        //Autocad's setting before you change
        bool originalSetting = CadApp.DisplayTextScreen;

        string message = "Available options:\n";
        message += string.join("\n",
            userOptions.Select((opt,i)=>i.ToString() + ": " + opt));
        message += "\nChoose an option"

        PromptIntegerOptions promptOptions = new PromptIntegerOptions(message);
        promptOptions.LowerLimit = 0;
        promptOptions.UpperLimit = userOptions.Count - 1;

        //display full command bar
        Application.DisplayTextScreen = true;
        var result = editor.GetInteger(promptOptions);

        int selection;
        if (result.Status == PromptStatus.OK)
            selection = result.Value;
        else
            selection = -1;

        //restore original setting
        Application.DisplayTextScreen = originalSetting;

        return selection;
}