Good day everyone,
I have a form with 2 ultragrids on them. The left grid has its scrollbars hidden. Now I want the right grid to lead the left grid along. So if I move the scrollbar on the right grid I want the left grid to follow.
Now I know this has been answered before, and I followed that solution. Here is a snippet of my code:
UltraGrid1.ActiveRowScrollRegion.ScrollPosition = e.RowScrollRegion.ScrollPosition
End Sub
Ultragrid1 is my left grid and MultiLayerGrid1 is my center grid. This solution works HOWEVER the left grid is slower then my right grid. So when I scroll the left grid is always a step behind. So I tried to use the:
UltraGrid1.ActiveRowScrollRegion.ScrollPosition = e.NewState.ScrollPosition
But it has no effect.
Is it even possible to have the two grids synchronised completely ? The behaviour is simply not acceptable at the moment.
Thanks for any help in advance,
Lunaios
lunaios said:But it has no effect.
What exactly do you mean? You are setting the ScrollPositon of the left grid, but it's not scrolling? That doesn't make sense. There's no reason why setting the ScrollPosition should fail completely.
Or do you just mean that the behavior of the left grid lagging behind doesn't change?
I tested this out and it works fine for me using either the Before or AfterRowScrollRegions events. There is no noticable delay at all.
What version of the grid are you using? I tested this with v7.2.
My guess is that you are probably using some features of the grid that are slowing down the scrolling of the left grid. Are you applying appearances to the grid? Are you using transparency? How big is the grid control?
Are you using ValueLists or Editors?
This might also be a question of machine speed. Are you developing on a particular slow machine?
My situations is as followed:
My computer has a duo core and 2 gig memory so I don't think it's a machine speed issue. I will check what version I am using, but we are using .NET Vol 2008 CLR 2.0
( As for the values in the grid, they are set manually)
Hm, 200 columns could certainly be an issue. There may be some things you can do to speed it up.
You should probably take a look at the CellDisplayStyle property on the column. This property allows you to turn off certain functionality on the cells that you know your application is not using and thus gain some performance.
What events of the grid are you handling?
Are you applying appearances to the grid cels or rows?
Well, if you feel it's an event, than the easiest thing to do is stat commenting out the code in one event at a time and see if the performance improves.
For horizontal scrolling, I doubt the problem is in InitializeRow, but it couldn't hurt to test that theory.
I have indeed changed the appearances on most cells.
I changed each columns celldisplay style to plaintext but it shows no improvement. I doubt it is performance related since my main grid (Right grid) has a horizontal scrollbar (which is only for him) and it scrolls smoothly. So my guess is that it is more event related.
I am catching the cell activated event before/after rowregion scrolled.
And also, I have a drawfilter that paints a few visual effects on some rows.