Microsoft KB Archive/156632

= PRB: SetFocus Does Not Function in All Control Methods =

Article ID: 156632

Article Last Modified on 10/15/2003

-

APPLIES TO


 * Microsoft Visual FoxPro 5.0 Standard Edition
 * Microsoft Visual FoxPro 6.0 Professional Edition

-



This article was previously published under Q156632



SYMPTOMS
In Visual FoxPro 5.0, the SetFocus method does not function in the VALID, WHEN, RANGEHIGH, and RANGELOW methods of TextBox, EditBox, and Spinner controls. Attempting to use the method will result in the error:

"Cannot call SetFocus from within a When, Valid, RangeHigh or RangeLow event."

NOTE: The error occurs if some other control's method is called that calls a SetFocus. That is, this error occurs if any of the events (When, Valid, RangeHigh, RangeLow) somewhere lower in the call stack calls the SetFocus. Example: The VALID calls a CLICK that calls a CLICK that calls a SETFOCUS; the error still occurs.



WORKAROUND
Call the SETFOCUS method in the LOSTFOCUS and GOTFOCUS methods rather than in the VALID and WHEN methods.



STATUS
This behavior is by design.



MORE INFORMATION
The controls in Visual FoxPro that will cause this error are TextBox, EditBox, and Spinner.

Steps to Reproduce Behavior
 Create a form. Add two Text boxes to the form (Text1 and Text2).  In the Valid event of Text1, add the following code: Thisform.Text2.Setfocus  Run the form, try to tab away from Text1, and note that the following error will occur:

"Cannot call SetFocus from within a When, Valid, RangeHigh or RangeLow event."



Keywords: kbprb KB156632

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.