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.

Move row and current cell

Thread ID:





4898 Jun 6,2003 08:36 AM Jun 6,2003 12:13 PM Windows Forms 6
Tags: GridControl
Charles Carlin
Asked On June 6, 2003 08:36 AM

I am having some issue with moving a row and trying to keep the current cell on the same cell in the new row. I am calling the CurrentCell.MoveTo method with the flag set to SetFocus. When I trace thru it appears to move the CurrentCell to the new row. However when the PrepareViewStyleInfo method is called the current row is back to the previous one. I rely on this code to change the highlighting and expand the current row. All subsequent code points to the current cell being back where it was before the move. However right after I call the move to the current cell is correct? Any ideas.

Administrator [Syncfusion]
Replied On June 6, 2003 08:44 AM

The e.RowIndex from the PrepareViewStyleInfo eventargs may or may not point to the current row. It points to the row of the cell that is about to be drawn. When you move from one row to another, it is likely both rows may need to be painted for some reason or the other. If you want to get the current row in PrepareViewStyleInfo, then you should use grid.CurrentCell.RowIndex. Is this how you are getting the currentrow?

Administrator [Syncfusion]
Replied On June 6, 2003 08:47 AM

Try also to to set RefreshCurrentCellBehavior.RefreshRow That will force the whole row to be repainted when moving to a new row. Stefan

Charles Carlin
Replied On June 6, 2003 09:10 AM

Maybe I confused the issue by keying in on PrepareView... The grid controls (non-databound) currentcell.rowindex property is changed to the correct value immediately after the call, however in prepareview and any other methods called afterwards the currentcell.rowindex is back to the old row. So if I trap in anywhere else (mousemove, currentcellmoving, etc) the currentcell is no longer correct.

Charles Carlin
Replied On June 6, 2003 09:17 AM

Now I am really confused because when I move row 4 up to row 3 and set row 3 active, row 4 remains active (after the initial call). However if I move row 4 to row 1 then row 2 becomes the current row. Similarly if I move row 1 to row 4 then row 3 becomes active. There definitely seems to be some type of off by one error here. It seems if I move a row up then the current row will equal one more then what I set it to and if I move it down it will equal one less?

Administrator [Syncfusion]
Replied On June 6, 2003 10:26 AM

The column header row is row zero, and the first 'regular' row is row 1. Can you attach a little project here showing this problem, or submit a Direct Trac support incidence with a sample?

Charles Carlin
Replied On June 6, 2003 12:13 PM

Well I figured it out, not really why but what caused it and how to do it properly. I was calling: gridControl1.Model.Rows.MoveRange(row, 1, nInsertAt); Which then raised the event for rowsmoving which was where I was trying to set the currentcell. I moved that code out of the rowsmoving event and placed it directly after the call to moverange and it works fine.


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.