Hi Igor,
With this particular application it's not quite that simple, as it could have thousands of rows being read in, and the values in all of those rows could be set to any value from outside of the application - some of the values are set by a service running on another server, and some are set by other copies of the GUI application. While it's possible to loop through all of the rows cross comparing with the current rows and updating cells this would be a lot slower that simply clearing the rows and adding them again in a single pass.
I've also got a colleague who uses the grid in a similar way, where the data is populated from a number of text files on a server that are continually being updated by hundreds of PCs on an assembly line (yes, it's messy, but it's a legacy system and it works :)) and again making multiple passes through the existing rows to find matching rows and update them, and then remove rows that no longer exist, will be somewhat slower than a single pass as it does now.
We can live with the scrollbars shifting, I was just hoping you might have some API code kicking around that can be used to temporarily disable the scrollbar refreshing. If I can figure out some convoluted Win32 API calls to handle it I'll let you know ;)
Dan