Запрос ключевых слов
Метод GetKeywords запрашивает у пользователя ввод ключевого слова в командной строке. Ключевым называется слово из предопределенного списка (заданного в свойстве Keywords объекта класса PromptKeywordOptions).
Примечание: Символ подчеркивания («_») относится к служебным символам и не может использоваться в качестве ключевого слова или его части. В примере ниже запрашивается выбор ключевого слова Пользователем с запретом пропуска выбора (AllowNone = false), то есть нажатия Enter. Свойство Keywords используется для задания перечня ключевых слов.
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
[CommandMethod("GetKeywordFromUser")]
public static void GetKeywordFromUser()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
PromptKeywordOptions pKeyOpts = new PromptKeywordOptions("");
pKeyOpts.Message = "\nEnter an option ";
pKeyOpts.Keywords.Add("Line");
pKeyOpts.Keywords.Add("Circle");
pKeyOpts.Keywords.Add("Arc");
pKeyOpts.AllowNone = false;
PromptResult pKeyRes = acDoc.Editor.GetKeywords(pKeyOpts);
Application.ShowAlertDialog("Entered keyword: " +
pKeyRes.StringResult);
}
Удобнее использовать предопределенное значение ключевого слова (на случай, если пользователь нажмет на Enter без выбора значения) в этом случае рекомендуется в подсказке к методу, отображаемой в командной строке, указывать, какое из ключевых слов будет считаться по умолчанию. Более удобной для пользователя является подсказка с ключевым словом, которая предоставляет значение по умолчанию, если пользователь нажимает Enter (ввод NULL). Обратите внимание на незначительные изменения в следующем примере. Он отличается от предыдущего только наличием заданного свойство Keywords.Default и AllowNone = false:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
[CommandMethod("GetKeywordFromUser2")]
public static void GetKeywordFromUser2()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
PromptKeywordOptions pKeyOpts = new PromptKeywordOptions("");
pKeyOpts.Message = "\nEnter an option ";
pKeyOpts.Keywords.Add("Line");
pKeyOpts.Keywords.Add("Circle");
pKeyOpts.Keywords.Add("Arc");
pKeyOpts.Keywords.Default = "Arc";
pKeyOpts.AllowNone = true;
PromptResult pKeyRes = acDoc.Editor.GetKeywords(pKeyOpts);
Application.ShowAlertDialog("Entered keyword: " +
pKeyRes.StringResult);
}