I try to insert a new row in a grid and then set a cell automatically to edit mode. The row is inserted via databinding to a business object, and not directly to the grid. The row is highlighted but no cell is in edit mode. If I first click on the grid and then inserts a new row it works for every new row thereafter. It's look like I am missing something the mouseclick do. A row insert is done by adding a new business object, and I deal with the new row in InitializeRow like this:
{
e.Row.Activate();
grid.ActiveCell = aCell;
}
The PerformAction seems to have no effect. If I click the grid first, it works as expected.
Some suggestion?
Kind Regards
Magnus
Oslo, Norway
Sorry for digging out such an old post ... Google send me here after searching for a solution to this exact same problem I had at work. Took a while to explore everything and finally we found out the cause of the error : the cell activation mode was set as "NoEdit" in the initialization of the Form.
Columns("NewDelai").CellActivation = Activation.NoEdit
so whenever we try to force the edit mode on this cell programmatically, we ended up with the same error OP got. ugRapport.PerformAction(UltraGridAction.EnterEditMode) ugRapport.ActiveCell.SelStart = 0
Hope this can help others too !
By trial and error...I've fixed the problem -- or at least worked around it. This is a threading issue on the Ultragrid. If I call: grid.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode) directly (on the first row, first cell) it just doesn't work. However, if I set up a delegate and invoke the delegate, it works fine:
Private Delegate Sub PerformAction()
Sub WinGridPerformAction() grid.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode) End Sub
Sub InitGrid() grid.DataSource = myDataSource grid.Focus() grid.DisplayLayout.Rows(0).Cells(0).Activate() Me.BeginInvoke(New PerformAction(AddressOf WinGridPerformAction)) End Sub
I am having the exact same problem. Can anyone help?
No matter what I do and where I do it, the first cell is active, but will not enter edit mode without a mouse click.
the row is active, teh cell is active, but Performaction(.....EnterEditMode) just doesn't make it go into edit mode! ARRRGGGH driving me nuts.
maggreen: did you find any solution for this? I am having the exact problem.
I managed to work around this with the following code:
row.Cells(0).Activate()
grid.PerformAction(UltraGridAction.FirstCellInRow)
grid.PerformAction(UltraGridAction.EnterEditMode)