Friday, April 15, 2011

DataGridView doesn't draw fully when shown

I have an application that uses DataGridView in two different locations. In one location, the DataGridView shows everything fine. In the other location, whenever the form containing the DataGridView is initially loaded, only about half of the visible portion of the DataGridView is actually drawn; through the rest of the DataGridView, the underlying windows graphics can be seen; if you scroll down through the rest of the data, you get a choppy view of what corresponds to the bottom row being scrolled upward through each scrolled row. The only ways to get the DataGridView to show the correct values are either to select a cell, forcing that particular cell to redraw; or to invalidate an area of the window, causing that area to redraw (which it does do correctly).

I've compared how each of these DataGridViews were set up: For the one that works fine, the DataGridView is statically bound to a BindingSource, which is statically bound to a DataSet; the one that has the draw problem is statically bound to a Binding Source that is dynamically bound to a DataTable during the creation of the form.

What could be causing my DataGridView to not display correctly?

From stackoverflow
  • There is a transparent color that is reserved for letting the graphics engine know to draw what is behind something

    Have you changed the form or the datagridview's backcolor or forecolor properties? perhaps a collision with the transparent color? Is there anyplace you are run-time or design-time changing colors?

    have you tried removing the datagridview and re-adding it?

0 comments:

Post a Comment