Hi,
I have a WinGrid with 10 columns. User enters data in first 4 columns and once the user clicks tab/enter on 4th column, a webservice is called to fill-in the remaining columns of that particular row. And then, once data is all populated, the focus/cursor should be placed in the first column of the next row. But, my program is not working like that. After populating the row with the web service returned data, the cursor remains in 5th cloumn of active row. I have all the functionaly written in gridProducts_BeforeCellDeactivate event. Please some one tell me how should I change the focus to next row?
Thanks,
Suneela.
I think you can get there by using the PerformAction method on the grid, using the appropriate UltraGridAction value
Kevin,
Thanks for the reply!
gridProducts.PerformAction(UltraGridAction.NextRow)
gridProducts.PerformAction(UltraGridAction.EnterEditMode)
But I dont know why it is going to a infinite loop when I use the above 2 lines of code.
well, probably because you have put it in the BeforeCellDeactivate eventhandler.
you should detach the handler before calling performaction, and re-attach it afterwards, or keep some kind of flag
Oh Ok!
Please can you explain me how to do that?
The easiest thing to do is to use grid.EventManager.SetEnabled() method. This will allow you to disable the event, call the PerformAction method, and then re-enabled the event.
Thanks Mike!
I worked it out in a different way, but not sure if i am going in an efficient way. I am performing the action in AfterCellactivate event.
If Me.gridProducts.ActiveCell.Column.Key = "MCB" Then
Me.gridProducts.ActiveCell = Me.gridProducts.ActiveRow.Cells("ProductID")
End If
End Sub
"MCB" is the 5th column and "ProductID" is the 1st column of grid.
Thanks a lot Mike!
It worked.
Suneela Chavali.
Well, you could probably just use a while loop.
while (s.Length < 8)
{
s = " " + s;
}
Ok!
I looked at all the string functions, but could not find any that can resolve my problem. Do you have any such function in your mind?
Okay, the Value property is going to return a numeric value like a double or an integer, so there's no way it's ever going to have spaces in it. Perhaps you can simply take the value and make a string out of it and prepend spaces to make it the proper length.
Mike,
I need the spaces on value property of that UltraNumericEditor control.
I tried using '#' or '0', but no luck. I also have "MaskDisplayMode" property as "Both".