I presume a winform\'s owner can be set explicitly via the .Owner property OR by passing the owner in the overloaded method ShowDialog(IWin32Window owne
Looking at the differences of these 2 options using Reflector, it seems that they have a slightly different implementation:
box.Owner = this
just assign the provided value of this to the internal owner field.
However, when calling ShowDialog(IWin32Window)
, the implementation performs the following call, prior to assigning the value:
owner = ((Control) owner).TopLevelControlInternal;
This might result in assignment of the MDIParent.
(Note: I'm far from being an expert regarding MDI, so I might be wrong here).