When I open a Form via Form.Show() the Show Event of the opened form is not raised.
But when I use Form.ShowDialog(), the event is raised and my breakpoint is hit in my Form_Shown method.
I saw this answer, that an exception hides the Event, but I get no exception.
So, why is the Event raised when I call ShowDialog(), but not if I call Show()?
Here is the link to a demo. When I click on the ShowDialog() button I see the messagebox with the load and shown-event, but for Show() I only see the load Event.
The Using block will dispose of your form immediately since Show will not block the code. ShowDialog will block the code until the form is closed, hence, that version works.