It seems like the mere act of overriding Form's preprocessing methods like WndProc and ProcessCmdKey in ABL Form can cause the application to throw ACCESS_VIOLATION error sporadically.
Try this. It's for the ProcessCmdKey.
It's a form embedded inside a flyout pane (I've seen the error from just a standalone window too). No dialog-boxes or input-blocking code is called along the method (ItemLocator_TextBoxLeave) call stack.
METHOD PROTECTED OVERRIDE LOGICAL ProcessCmdKey( INPUT-OUTPUT msg AS CLASS System.Windows.Forms.Message, INPUT keyData AS CLASS System.Windows.Forms.Keys ):
glFromTab = Progress.Util.EnumHelper:AreEqual(keyData, System.Windows.Forms.Keys:Tab).
IF glFromTab AND
(gcOrigItem <> THIS-OBJECT:EditorText OR
(gcOrigItem = "" AND THIS-OBJECT:EditorText = "")) THEN /* allow handling tabbing when the item is blank */
ItemLocator_TextBoxLeave( ?, ? ). /* parent container will be responsible for handling TAB destination */
RETURN TRUE. /* processed */
RETURN SUPER:ProcessCmdKey(msg, keyData).
Adding INPUT-OUTPUT to the parameter when you call the SUPER in WndProc is also needed (assuming that it isn't there).
Thanks, I'll try that one.
I put in placed your suggested change, but today (after 3 months), we just hit another ACCESS-VIOLATION error.