BUG: DBGrid with Visible Property Set to False Becomes Visible (139971)
The information in this article applies to:
- Microsoft Visual Basic Standard Edition for Windows 4.0
- Microsoft Visual Basic Professional Edition for Windows 4.0
- Microsoft Visual Basic Enterprise Edition for Windows 4.0
This article was previously published under Q139971 SYMPTOMS
A DBGrid that has its Visible property set to False does not remain
invisible when the data control referenced in its DataSource property is
refreshed (via the Refresh method) or has its current record changed.
CAUSE
As a side effect of these methods, a message to repaint is sent to a data
bound grid. In this case, the problem is that the DBGrid control does not
check its Visible property to see if it is all right to draw itself on the
form, it just goes ahead and does it.
WORKAROUND
Executing the following line of code
<DBGrid Name>.Visible = False
causes another Paint message to be sent to the DBGrid control, but this
time the grid behaves correctly and hides itself. The workaround is to
place this line of code (shown above) in the Reposition event of the data
control. Whenever a data control executes a Refresh method, or any of the
Move methods, the Reposition event is called, and this line of code causes
the correct painting to occur.
Another workaround is to move the DBGrid control off of the visible section
of the form when it should not be seen. You can use a line of code such as
the following:
DBGrid1.Move -5000, -5000
To make the DBGrid visible again, move it back to the
correct location on the form.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of the article. We are researching this problem and will
post new information here in the Microsoft Knowledge Base as it becomes
available.
Modification Type: | Major | Last Reviewed: | 11/18/2003 |
---|
Keywords: | kbbug KB139971 |
---|
|