Hi
I am trying to get my code to work more like some of the built in autocad commands below is the code I have come up with. However if the string returned is not a Keyword or a string that can be converted to a double it is then not acceptable input. How do I jump back to re ask for the input. I could use goto I guess but thats not good practice is there a better way?
'ask the user if they want to accept the sureface level at the lid level or enter a new one
Dim acDoc AsDocument = Application.DocumentManager.MdiActiveDocument
Dim pKeyOpts AsPromptKeywordOptions = NewPromptKeywordOptions("")
Dim CurrentLidLevel AsDouble = oStructure.RimElevation
pKeyOpts.Message = vbLf &
"Structure Lid Level:" & CurrentLidLevel
pKeyOpts.Keywords.Add(
"Surface")
pKeyOpts.Keywords.Add(
"New")
'pKeyOpts.Keywords.Default = "New"
pKeyOpts.AllowNone =
True
Dim pKeyRes AsPromptResult = acDoc.Editor.GetKeywords(pKeyOpts)
SelectCase pKeyRes.StringResult
Case"Surface"
'Do nothing
Lidlevel = CurrentLidLevel
Case"New"
'ask user for grade to use
Lidlevel = acDoc.Editor.GetDouble(vbCrLf &
"Enter New lid level of Structure").Value
Case""
'Enter key hit
MsgBox(
"using surface level for lid level")
Case Else
'Check if input was a number that we can work with
Try
Double.TryParse(pKeyRes.StringResult, Lidlevel)
Catch ex AsException
EndTry
'enter pressed do nothing
EndSelect
Use GetDouble with PromptDoubleOptions and AutoCAD will automatically reprompt if the user enters anything that is not a double or a keyword. Setting AllowNone = true allows the Enter Key.