Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
480
applying a ValueList selection immediately
posted

I have a UltraGrid column of type string.

I set a ValueList property of the UltraGridColumn that I get through the UltraGrid's DisplayLayout.

After  the user selects an item in the drop down, the grid puts the cursor in the cell to allow editing.

The user has to hit 'ENTER' after selecting the drop down for the edit to raise the change event. 

How can I make the change event get raised when the selection finishes with out requiring the user to also hit enter...

I want the edit applied on the select and the change raise immediately...

 

 

 

Parents
  • 480
    Offline posted

    by the way here is the event I would like raise.

    It does not happen when I select from the drop down, only when I confirm it with enter

     

    >    MgdScene.dll!MgdScene.CharacterCLT.WeaponFile.set(string value = "weapon-AK47") Line 262    C#
         [Native to Managed Transition]   
         [Managed to Native Transition]   
         System.dll!System.ComponentModel.ReflectPropertyDescriptor.SetValue(object component = {MgdScene.CharacterCLT}, object value = "weapon-AK47") + 0x124 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridRow.SetCellValue(Infragistics.Win.UltraWinGrid.UltraGridColumn column = {WeaponFile}, object val = "weapon-AK47", bool suppressErrorMessagePrompt = false, bool throwExceptionOnError = false, bool fireDataChanged = true, bool fireCellUpdateEvents = false) + 0x8b3 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridRow.SetCellValue(Infragistics.Win.UltraWinGrid.UltraGridColumn column = {WeaponFile}, object val = "weapon-AK47", bool suppressErrorMessagePrompt = false, bool throwExceptionOnError = false, bool fireDataChanged = true) + 0x46 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridRow.SetCellValue(Infragistics.Win.UltraWinGrid.UltraGridColumn column = {WeaponFile}, object val = "weapon-AK47", bool suppressErrorMessagePrompt = false, bool throwExceptionOnError = false) + 0x43 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.SetValueInternal(object value = "weapon-AK47", bool suppressErrorMessagePrompt = false, bool fireInitializeRow = false, bool throwExceptionOnError = false, bool fireDataChanged = true) + 0x428 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.SetValueInternal(object value = "weapon-AK47", bool suppressErrorMessagePrompt = false, bool fireInitializeRow = false, bool throwExceptionOnError = false) + 0x45 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.SetValueInternal(object value = "weapon-AK47", bool suppressErrorMessagePrompt = false, bool fireInitializeRow = false) + 0x31 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.CommitEditValue(ref bool stayInEdit = false, bool fireDataError = true, bool forceDontThrowException = false, bool dontStoreInUndoHistory = false) + 0xa97 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.CommitEditValue(ref bool stayInEdit = false, bool fireDataError = true, bool forceDontThrowException = false) + 0x31 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridLayout.OnEditorBeforeExitEditMode(object sender = {Infragistics.Win.EditorWithCombo}, Infragistics.Win.BeforeExitEditModeEventArgs e = {Infragistics.Win.BeforeExitEditModeEventArgs}) + 0x1d9 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EmbeddableEditorBase.OnBeforeExitEditMode(ref bool cancel = false, bool forceExit = false, bool applyChanges = true) + 0x97 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EditorWithText.OnBeforeExitEditMode(ref bool cancel = false, bool forceExit = false, bool applyChanges = true) + 0x5a bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EditorWithCombo.OnBeforeExitEditMode(ref bool cancel = false, bool forceExit = false, bool applyChanges = true) + 0x30 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EmbeddableEditorBase.ExitEditMode(bool forceExit = false, bool applyChanges = true) + 0x2cd bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.ExitEditMode(bool cancellingEditOperation = false, bool forceExit = false) + 0x160 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.ExitEditMode() + 0x23 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGrid.ClearActiveCell(bool invalidate = true, bool shutdown = false) + 0x58 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGrid.OnActiveRowCleared(bool update = true) + 0x94 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridBase.SetActiveRow(Infragistics.Win.UltraWinGrid.UltraGridRow row = {Infragistics.Win.UltraWinGrid.UltraGridRow}, bool scrollIntoView = false) + 0x208 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.Activate() + 0x1ca bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.SetFocusAndActivate(bool byMouse = true, bool enterEditMode = false, bool byTabKey = false) + 0x8e bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridCell.SetFocusAndActivate() + 0x2b bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGrid.Infragistics.Win.ISelectionManager.ActivateItem(Infragistics.Shared.ISelectableItem item = {Infragistics.Win.UltraWinGrid.UltraGridCell}) + 0x37 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.SelectionStrategyExtended.ProcessKeyBoardItem(Infragistics.Shared.ISelectableItem item = {Infragistics.Win.UltraWinGrid.UltraGridCell}, bool shift = false, bool control = false, bool forceToggle = false) + 0xa6 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridLayout.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction actionCode = NextCellByTab, bool shiftKeyDown = false, bool ctlKeyDown = false) + 0xc95 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGrid.PerformKeyAction(System.Enum actionCode = NextCellByTab, bool shiftKeyDown = false, bool ctlKeyDown = false) + 0x12a bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridUIElement.PerformKeyAction(System.Enum actionCode = NextCellByTab, bool shiftKeyDown = false, bool ctlKeyDown = false) + 0x3d bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.ControlUIElementBase.ProcessKeyDown(object sender = {Infragistics.Win.UltraWinGrid.UltraGridUIElement}, System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x168 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.ControlUIElementBase.ProcessKeyDown(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x28 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridUIElement.ProcessKeyDown(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x6c bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.Utilities.ProcessEvent(System.Windows.Forms.Control control = {Infragistics.Win.UltraWinGrid.UltraGrid}, Infragistics.Win.ControlUIElementBase.ProcessEvent eventToProcess = KeyDown, System.EventArgs e = {KeyData = LButton | MButton | Back}) + 0x2b5 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.UltraControlBase.OnKeyDown(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x5c bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridBase.EditorContainerControlOnKeyDown(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x28 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridBase.OnKeyDownForwarded(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x4b6 bytes   
         Infragistics2.Win.UltraWinGrid.v11.1.dll!Infragistics.Win.UltraWinGrid.UltraGridLayout.OnEditorKeyDown(object sender = {Infragistics.Win.EditorWithCombo}, System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x47 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EmbeddableEditorBase.RaiseKeyDownEvent(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x3d bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EmbeddableTextBox.OnKeyDown(System.Windows.Forms.KeyEventArgs e = {KeyData = LButton | MButton | Back}) + 0x65 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EmbeddableTextBoxWithUIPermissions.ProcessKeyMessage(ref System.Windows.Forms.Message msg = {msg=0x100 (WM_KEYDOWN) hwnd=0x8a08a4 wparam=0xd lparam=0x1c0001 result=0x0}) + 0x2f5 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Control.WmKeyChar(ref System.Windows.Forms.Message m = {msg=0x100 (WM_KEYDOWN) hwnd=0x8a08a4 wparam=0xd lparam=0x1c0001 result=0x0}) + 0x15 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) + 0x7dd bytes   
         System.Windows.Forms.dll!System.Windows.Forms.TextBoxBase.WndProc(ref System.Windows.Forms.Message m) + 0x37 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.TextBox.WndProc(ref System.Windows.Forms.Message m) + 0x36 bytes   
         Infragistics2.Win.v11.1.dll!Infragistics.Win.EmbeddableTextBoxWithUIPermissions.WndProc(ref System.Windows.Forms.Message m = {msg=0x100 (WM_KEYDOWN) hwnd=0x8a08a4 wparam=0xd lparam=0x1c0001 result=0x0}) + 0x197 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref System.Windows.Forms.Message m) + 0x10 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x31 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg = 256, System.IntPtr wparam, System.IntPtr lparam) + 0x57 bytes   
         [Native to Managed Transition]   
         [Managed to Native Transition]   
         System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int dwComponentID, int reason = -1, int pvLoopData = 0) + 0x24e bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason = -1, System.Windows.Forms.ApplicationContext context = {System.Windows.Forms.ApplicationContext}) + 0x177 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) + 0x61 bytes   
         System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) + 0x31 bytes   
         ScenarioEditor.exe!ScenarioEditor.Program.Main(string[] args = {Dimensions:[0]}) Line 57 + 0x2c bytes    C#
         [Native to Managed Transition]   
         [Managed to Native Transition]   
         mscorlib.dll!System.AppDomain.ExecuteAssembly(string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args) + 0x3a bytes   
         Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x2b bytes   
         mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x66 bytes   
         mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6f bytes   
         mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes   

  • 469350
    Offline posted in reply to Karl Meissner

    Hi,

    I'm really not sure what event you are referring to. There is no Change event on the grid. Are you asking about a grid event or an event on some other object?

    The grid doesn't commit the changes to a cell on every keystroke or when you pick from the list, because that would be very inefficient and dangerous. The user might change his mind and pick something else and so any processing you do at that point would have been wasted.

    Also, for some types of cells, updating on every change would not work. Take, for example, a DateTime cell. As the user is typing, what they type initially isn't a valid date at all, until they type a certain number of characters.

    There's a CellChange event on the grid that fires on every keystroke (or when you select a ValueListItem) but the Value of the cell will not (and really cannot) reflect the change at this point, since it might not be valid. You have to use the Text property of the cell to get the actual on-screen text of the cell.

    The grid writes changes to the data source based on the UpdateMode property. By default, this happens when you leave the cell or the grid control loses focus.

    If you want to force an update manually, you can call the UpdateData method on the row (to commit all changes in the row) or the Update method on the grid (to commit all changes to all rows). But, of course, this method can fail in some cases if the user is in the middle of editing. That's probably not a problem in this case.

    There is also a CellListSelect event on the grid. This is similar to CellChange, in that the Value property will not have been updated when it fires and you have to use Text.

Reply Children