Here's how I know that Form.Load does not really map to WM_INITDIALOG. In Windows API if text is changed in a control on loading a dialog, the EN_CHANGE message does not ever get sent.

In Form_Load it always fires TextChanged if you set the text of a control.

This means I need to have a bool for loaded and set it to true at the end of Form_Load. to know whether or not the user really made any changes to the input and then in TextChanged, check that loaded is true.