The following table lists high-level ABL widget events and their OpenEdge GUI for .NET counterparts (if any).
Note: Events that begin with "Ultra" are specific to Infragistics and may not be part of the regular .NET implementation.
Table 1. OpenEdge GUI events compared to OpenEdge GUI for .NET events
OpenEdge GUI event OpenEdge GUI for .NET event
CHOOSE 

Click — Button control, UltraButton control, MenuItem control
ToolClick — UltraToolBarsManager control

DEFAULT-ACTION 
No similar event in .NET
DROP-FILE-NOTIFY 
DragDrop — Control base class for all controls
END 
OffEnd — Progress.Data.BindingSource control
END-SEARCH 
No similar event in .NET
ENTRY 

AfterCellActivate — UltraGrid control
AfterRowActivate — UltraGrid control
Enter — Control base class for all controls
CellEnter — DataGridView control
GotFocus — Control base class for all controls
RowEnter — DataGridView control

HOME 
No similar event in .NET
ITERATION-CHANGED 
See VALUE-CHANGED in this table
LEAVE 

BeforeRowDeactivate — UltraGrid control
BeforeCellDeactivate — UltraGrid control
CellLeave — DataGridView control
Leave — Control base class for all controls
RowLeave — DataGridView control

MENU-DROP 

AfterApplicationMenuDropDown — UltraToolBarsManager control
MenuActivate — MenuStrip control

OFF-END 
No similar event on the DataGridView control. Can invoke the GetNextRow( ) method on the DataGridRowCollection returned by the Rows property. If the return value of the method is -1, the method is attempting to read beyond the last row in the DataGridView control.

No similar event on the UltraGrid control. Can test the HasNextSibling property on the current UltraGridRow control to determine if there is a following (sibling) row in the UltraGrid.

OFF-HOME 
No similar event on the DataGridView control. Can invoke the GetPreviousRow( ) method on the DataGridRowCollection returned by the Rows property. If the return value of the method is -1, the method is attempting to read before the first row in the DataGridView control.

No similar event on the UltraGrid control. Can test the HasPrevSibling property on the current UltraGridRow control to determine if there is a previous (sibling) row in the UltraGrid.

PARENT-WINDOW-CLOSE 
No similar event in .NET
ROW-DISPLAY 

AfterRowActivate — UltraGrid control
AfterRowExpanded — UltraGrid control
RowPostPaint — DataGridView control

ROW-ENTRY 

AfterRowActivate — UltraGrid control
RowEnter — DataGridView control

ROW-LEAVE 

BeforeRowDeactivate — UltraGrid control
RowLeave — DataGridView control

SCROLL-NOTIFY 

AfterCardsScroll — UltraGrid control
AfterColRegionScroll — UltraGrid control
AfterRowRegionScroll — UltraGrid control
MouseWheel — Control base class for all controls
Scroll — DataGridView control

START-SEARCH 

ColumnHeaderMouseClick — DataGridView control
DoubleClickHeader — UltraGrid control

VALUE-CHANGED 

AfterCellUpdate — UltraGrid control
CellChange — UltraGrid control
CellValueChanged — DataGridView control
CheckedChanged — CheckBox control
ItemSelectionChanged — ListView control
RowEnter — DataGridView control
SelectionChangeCommitted — UltraComboEditor control
SelectionChanged — DataGridView control (and others)
SelectedValueChanged — ComboBox control
TextChanged — TextBox control (and others)
ToolValueChanged — UltraToolbarsManager control

WINDOW-CLOSE 

FormClosing — System.Windows.Forms.Form control1 (raised before the form is closed)
FormClosed — System.Windows.Forms.Form control1 (raised after the form is closed)

WINDOW-MAXIMIZED 
No similar event on a form control. Test the WindowState form property for a FormWindowState enumeration value of Maximized.
WINDOW-MINIMIZED 
No similar event on a form control. Test the WindowState form property for a FormWindowState enumeration value of Minimized.
WINDOW-RESIZED 

ResizeBegin — System.Windows.Forms.Form control1
ResizeEnd — System.Windows.Forms.Form control1

WINDOW-RESTORED 
No similar event on a form control. Test the WindowState form property for a FormWindowState enumeration value of Normal.
1 Progress Software Corporation recommends that you use the OpenEdge-derived form class, Progress.Windows.Form, instead.