The Form class' ShowDialog method functions differently than its Show method. Here's how:
- ShowDialog does not call the Dispose method automatically on its close. However, Show, when modeless, does dispose upon close.
- ShowDialog's returned value can be used to determine how the user closed the form (using the DialogResult property).
One of the benefits of the modal dialog not being disposed after it's closed is that the data can be retrieved from the modal form.
A good practice is to call the Dispose method in a final block or call using statement, when using the ShowDialog method, which releases resources and handles from memory.