We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy.
Unfortunately, activation email could not send to your email. Please try again.

Synchronizing Multiple Grids'' Scrolling

Thread ID:





21805 Nov 23,2004 07:49 AM Nov 30,2004 04:42 AM Windows Forms 7
Tags: GridControl
John Bowm
Asked On November 23, 2004 07:49 AM

Hi, I''ve got multiple grids that need to have their vertical scrolling synchronized. I searched the knowledge base and found a reference to Q10530. I tried doing what the text briefly describes, but it doesn''t quite work right. I get into a continuous scrolling on the selected grid, until it runs out of stack space. Unfortunately, I can''t retrieve the example code from the link. IE is complaining the site does not exist. Can someone send me the example code from this aritcle and/or help me stop the continuous scrolling effect? TIA, John

Administrator [Syncfusion]
Replied On November 23, 2004 12:00 PM

We have had some web woes in the last day or so, and have had to move some things around. As a result, that link was broken. That download link from the KB should be working now.

John Bowm
Replied On November 23, 2004 02:15 PM

Clay, Thanks for hunting down the link. I managed to get the .ZIP file OK. I''ll let you know if I still can''t resolve it after going through the example code. John

John Bowm
Replied On November 29, 2004 11:58 AM

Clay, Now that I''m back from vac. I''ve been trying to make this work. But alas, it doesn''t. Here''s the details. I''ve got a tab control that has 1 grid on each tab page. The number of tabs (& therefore number of grids, as well as their respective names) is dynamically determined at run time and can vary when the tab control is created/loaded w/ data. Thus, in the OnTopRowChanged event handler, I must roll through all the grids present and update their respective TopRowIndex accordingly. Here''s my current code: //Roll through all the grids we have and set their TopRowIndex to this one''s. try { int CurrrentGridsTopRowIdx = e.SavedValue; Syncfusion.Windows.Forms.Grid.GridControl CurrGrid = (Syncfusion.Windows.Forms.Grid.GridControl)sender; foreach(TabPage tbCurrPage in m_tbCtrl.TabPages) { Syncfusion.Windows.Forms.Grid.GridControl NextGrid = GetCurrentPageGrid(tbCurrPage); if (CurrGrid.Name != NextGrid.Name) { NextGrid.TopRowIndex = CurrrentGridsTopRowIdx; NextGrid.Refresh(); } } } catch(Exception eAll) { //Force this one up the UI level. throw new Exception(eAll.InnerException.Message); } Note that the GetCurrentPageGrid(tbCurrPage) call simply loops through all the controls on the passed in tabpage and locates the grid object and returns the 1st one it finds. Any more ideas? Thanks again! John

Administrator [Syncfusion]
Replied On November 29, 2004 12:35 PM

It seems to work for me in this sample. TabPages_7151.zip

John Bowm
Replied On November 29, 2004 12:48 PM

Clay, Thanks for the "fixed code".. & so fast. That seems to do it. However, I came up w/ an alternative that also seemds to work that I would like your opinion on. Basically, I could handle the Tab Control''s SelectedIndexChanged event and then compare the PreviouslySelectedGrid.TopRowIndex vs NewlyelectedGrid.TopRowIndex and if different update the NewlySelectedGrid.TopRowIndex. Do you see any (dis)advantages using either approach? Thanks again, John

Administrator [Syncfusion]
Replied On November 29, 2004 04:40 PM

I think your solution is fine as long as you only care about the visible grid having its toprowindex set. The other (nonvisible) grids will still have their old toprowindex. As long as this is ok with your requirements, then I think it is fine.

John Bowm
Replied On November 30, 2004 04:42 AM

Clay, Thanks again for the help & opinion. Now to determine which one and implement it for real... John


This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.