Question:
How do I make a control keep the focus until a value within a specified range is entered?
The control in question is a text box.
Answer:
The simplest way to trap this would be to use the Valid method of the textbox. The Valid method fires when you attempt to leave a control. If the code in the Valid method returns .T., then you are allowed to leave the control. Otherwise, you remain in the control. For example, to enforce a range of 2 through 5 inclusive, you could put the following code into the Valid method of the textbox:
RETURN BETWEEN(this.Value,2,5)
Another approach would be to use the RangeHigh and RangeLow methods. These are a little confusing at first. The concept is that you RETURN the value that is the limit (the lower limit in RangeLow and the upper limit in RangeHigh). For example, to create the same effect as the code above, you could put the following code into the RangeLow method:
RETURN 2
and the following code into the RangeHigh method:
RETURN 5