Ответ 1
Это совершенно нормально, поскольку это предполагаемое поведение. Однако это не эквивалентно щелчку красного "X" в верхнем правом углу формы, если вы используете MDI или ShowDialog()
.
Когда форма отображается как модальное диалоговое окно, нажмите кнопку Закрыть (кнопка с X в правом верхнем углу формы) заставляет скрыть форму и установить свойство DialogResult на DialogResult.Cancel. Метод Close не вызывается автоматически когда пользователь нажимает кнопку "Закрыть" диалогового окна или устанавливает значение свойства DialogResult. Вместо этого форма скрыта и можно снова показать без создания нового экземпляра диалогового окна. Из-за этого поведения вы должны вызвать метод Dispose формы когда форма больше не нужна вашему приложению.
Значение DialogResult
может быть переопределено:
Вы можете переопределить значение, присвоенное свойству DialogResult, когда пользователь нажимает кнопку Закрыть, устанавливая свойство DialogResult в обработчике событий для события закрытия формы.
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.dialogresult(v=VS.100).aspx