PRB: ActiveControl Set to "Nothing" on Disabled FormLast reviewed: September 3, 1997Article ID: Q173348 |
The information in this article applies to:
SYMPTOMSIn Microsoft Visual Basic version 4.0 for Windows, referencing the ActiveControl property of a form that has been disabled returns the control. In Visual Basic version 5.0 for Windows, referencing the ActiveControl property of a form that has been disabled causes run-time error 91 "Object variable or With block variable not set" to be displayed.
CAUSEIn Visual Basic 5.0, the value of the ActiveControl property of a form is set to "Nothing" when the form is disabled.
RESOLUTIONThe behavior in Visual Basic 5.0 is correct. This change in behavior may affect Visual Basic 4.0 applications that have been coded to the old behavior and then converted to Visual Basic 5.0. One workaround for this problem is to store the value of the ActiveControl property in a variable before a form is disabled. That variable can later be used to reference the control. To prevent the run-time error from occurring, change the code to the following:
Public Form2LastControl As Control 'General Declarations of Form1 Private Sub Command1_Click() Set Form2LastControl = Form2.ActiveControl Form2.Enabled = False End Sub Private Sub Command2_Click() MsgBox Form2LastControl.Text End Sub Private Sub Form_Load() 'Form Load Event of Form1 Form2.Show vbModeless End Sub Private Sub Form_Load() 'Form Load Event of Form2 Set Form1.Form2LastControl = Me.Controls(0) End Sub STATUSThis behavior is by design.
MORE INFORMATION
Steps to Reproduce Behavior
Keywords : PrgCtrlsStd vb5all Version : WINDOWS:5.0 Platform : WINDOWS Issue type : kbprb |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |