使用 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 String
promptStr = vbCrLf & "Enter the size or (Big/Small/<Regular>):"
' 在 GetInteger 提示下,输入关键字
' 或按 ENTER 键而没有输入值将产生错误。为允许
' 应用程序继续并且检查错误
' 信息,必须将错误处理程序设置为在错误发生后恢复执行。
On Error Resume Next
' 获取用户输入的值
Dim returnInteger As Integer
returnInteger = ThisDrawing.Utility.GetInteger(promptStr)
' 检查错误。如果错误编号与下面显示的
' 编号之一匹配,则使用 GetInput 获取返回的
' 字符串;否则,使用 returnInteger 的值。
If Err.Number = -2145320928 Then
Dim returnString As String
Debug.Print Err.Description
returnString = ThisDrawing.Utility.GetInput()
If returnString = "" Then ' 按 ENTER 键返回空字符串
returnString = "Regular" ' 设置为默认
End If
Err.Clear
Else ' 否则,
returnString = returnInteger ' 使用输入的值
End If
' 显示结果
MsgBox returnString, , "InitializeUserInput Example"
End Sub