-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Issue moved from MicrosoftDocs/feedback#3988
- Please respond to @Eudora-Li01.
From @Eudora-Li01 on Wednesday, January 31, 2024 6:40:01 AM
Is your feature request related to a problem? Please describe.
https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.form.showdialog?view=windowsdesktop-8.0#system-windows-forms-form-showdialog(system-windows-forms-iwin32window)
This doc clarifies that when a form is displayed as a modal dialog box, clicking the Close button (the button with an X at the upper-right corner of the form) causes the form to be hidden and the DialogResult property to be set to DialogResult.Cancel. Unlike modeless forms, the Close method is not called by the .NET Framework when the user clicks the close form button of a dialog box or sets the value of the DialogResult property. Instead the form is hidden and can be shown again without creating a new instance of the dialog box.
But actually, you can see from the attached WinForms project (C#, .NET 8.0), that this is not the case. Instead, the Form_Load event is fired on every ShowDialog. This means the code in Form_Load runs every time the form is shown though it has already been loaded.
Describe the solution you'd like
Please add more info after above statement:
However, Form_Load will trigger AFAIK when for whatever reason the handle got created, recreated or the Form was previously shown as a modal Dialog.
