KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q157855: PRB: AfterRowColChange Event Code Does Not Enable Grid Cell

Article: Q157855
Product(s): Microsoft FoxPro
Version(s): WINDOWS:5.0
Operating System(s): 
Keyword(s): 
Last Modified: 11-DEC-1999

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual FoxPro for Windows, version 5.0 
-------------------------------------------------------------------------------

SYMPTOMS
========

If the Enabled property of a cell is changed in the AfterRowColChange event, the
effect may not take place immediately. A cell that should be enabled may be
disabled after moving to it from a disabled cell. Moving to a different cell in
that row and back again enables the cell.

CAUSE
=====

The Enabled property at the column level is checked upon entry to the field. If
it is changed after entering a field, it is not looked at again until you leave
and re-enter the field.

WORKAROUND
==========

If you wish to disallow editing of a cell based on the contents of the cell, set
the ReadOnly property to true (.T.) as shown below:

     IF numb_char.numb>80000
        This.Columns(ncolindex).ReadOnly=.F.
     ELSE
        This.Columns(ncolindex).ReadOnly=.T.
     ENDIF

Furthermore, you can change the color of the active cell by following the steps
outlined in the following article in the Microsoft Knowledge Base:

  Q129280 How to Change the Color of the Active Cell in a Grid

STATUS
======

This behavior is by design.

MORE INFORMATION
================

Steps to Reproduce Behavior
---------------------------

1. Create a table by entering the following command in the Command window:

  " CREATE TABLE numb_char(numb n(5),alpha c(5)) " (without the quotation
  marks)

2. Fill the numeric field with some values over 80000 and some values under.
  Fill the alpha field with anything.

3. Create a new form and place the table in the DataEnvironment.

4. Drag the table to the form to make a grid.

5. Place the following code in the AfterRowColChange event:

        IF numb_char.numb>80000
           This.Columns(ncolindex).Enabled=.t.
        ELSE
           This.Columns(ncolindex).Enabled=.f.
        ENDIF

6. Save and Run the form. Move from row to row.

Notice when you move with the arrow keys from a disabled row to one that should
be enabled, the row that should be enabled is not until you move to the left or
right and back again.

Additional query words: kbdsd VFoxWin

======================================================================
Keywords          :  
Technology        : kbVFPsearch kbAudDeveloper kbVFP500
Version           : WINDOWS:5.0

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.