控制用户输入
From AutoCAD ActiveX/VBA
使用 InitializeUserInput 方法可以定义关键字或将输入类型限制为用户输入方法。其使用和参数值类似于 AutoLISP 的 initget 函数。InitializeUserInput 可与以下方法一起使用:GetAngle、GetCorner、GetDistance、GetInteger、GetKeyword、GetOrientation、GetPoint 和 GetReal。InitializeUserInput 不能与 GetString 方法一起使用。当用户输入方法没有返回字符串值时,可以使用 GetInput 方法检索字符串值(关键字或任意输入)。
InitializeUserInput 方法接收两个参数。第一个参数是按位编码的整数值,用于确定用户输入方法的输入选项;第二个参数是定义有效关键字的字符串。
Sub Ch3_UserInput()
' InitializeUserInput (6) 的第一个参数' 将输入限制为正数和非负数' 值,第二个参数是有效' 关键字的列表。ThisDrawing.Utility.InitializeUserInput 6, "Big Small Regular"' 设置提示字符串变量Dim promptStr As StringpromptStr = vbCrLf & "Enter the size or (Big/Small/<Regular>):"' 在 GetInteger 提示下,输入关键字' 或按 ENTER 键而没有输入值将产生错误。为允许' 应用程序继续并且检查错误' 信息,必须将错误处理程序设置为在错误发生后恢复执行。On Error Resume Next' 获取用户输入的值Dim returnInteger As IntegerreturnInteger = ThisDrawing.Utility.GetInteger(promptStr)' 检查错误。如果错误编号与下面显示的' 编号之一匹配,则使用 GetInput 获取返回的' 字符串;否则,使用 returnInteger 的值。If Err.Number = -2145320928 ThenDim returnString As StringDebug.Print Err.DescriptionreturnString = ThisDrawing.Utility.GetInput()If returnString = "" Then ' 按 ENTER 键返回空字符串returnString = "Regular" ' 设置为默认End IfErr.ClearElse ' 否则,returnString = returnInteger ' 使用输入的值End If' 显示结果MsgBox returnString, , "InitializeUserInput Example"End Sub