Как закрыть форму в c при нажатии кнопки
Перейти к содержимому

Как закрыть форму в c при нажатии кнопки

  • автор:

способы закрытия формы

Пользователь пытается закрыть программу стандартным способом, кликает на верхнюю правую кнопку «крестик», нажимает комбинацию клавиш Alt+F4 или в левом верхнем углу вызывает контекстное меню формы. Но программа сразу не закрывается, а появляется окно сообщения, в котором нужно подтвердить решение закрытия.
Событие FormClosingEventArgs принимает параметр «е». Этот параметр имеет свойство Cancel. Если установить его в false , форма закроется, если в true — останется открытой.

Копировать

  • using System;
  • using System.Collections.Generic;
  • using System.ComponentModel;
  • using System.Data;
  • using System.Drawing;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • using System.Windows.Forms;
  • namespace _0006
  • public partial class Form1 : Form
  • public Form1()
  • InitializeComponent();
  • >
  • private void Form1_FormClosing( object sender, FormClosingEventArgs e)
  • DialogResult dialog = MessageBox.Show(
  • «Вы действительно хотите выйти из программы?» ,
  • «Завершение программы» ,
  • MessageBoxButtons.YesNo,
  • MessageBoxIcon.Warning
  • );
  • if (dialog == DialogResult.Yes)
  • e.Cancel = false ;
  • >
  • else
  • e.Cancel = true ;
  • >
  • >
  • >
  • >
  • using System;
  • using System.Collections.Generic;
  • using System.ComponentModel;
  • using System.Data;
  • using System.Drawing;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • using System.Windows.Forms;
  • namespace _0006
  • public partial class Form1 : Form
  • public Form1()
  • InitializeComponent();
  • >
  • private void Form1_FormClosing( object sender, FormClosingEventArgs e)
  • DialogResult dialog = MessageBox.Show(
  • «Вы действительно хотите выйти из программы?» ,
  • «Завершение программы» ,
  • MessageBoxButtons.YesNo,
  • MessageBoxIcon.Warning
  • );
  • if (dialog == DialogResult.Yes)
  • e.Cancel = false ;
  • >
  • else
  • e.Cancel = true ;
  • >
  • >
  • >
  • >

Form. Form Closing Событие

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Происходит перед закрытием формы.

public: event System::Windows::Forms::FormClosingEventHandler ^ FormClosing;
public event System.Windows.Forms.FormClosingEventHandler FormClosing;
public event System.Windows.Forms.FormClosingEventHandler? FormClosing;
member this.FormClosing : System.Windows.Forms.FormClosingEventHandler 
Public Custom Event FormClosing As FormClosingEventHandler 
Тип события

Примеры

В следующем примере показано использование этого элемента. В этом примере обработчик событий сообщает о возникновении FormClosing события. Этот отчет поможет вам узнать, когда происходит событие, и поможет вам в отладке. Чтобы сообщить о нескольких событиях или о событиях, которые происходят часто, рекомендуется заменить MessageBox.ShowConsole.WriteLine сообщение или добавить его в многостроочный TextBox.

Чтобы выполнить пример кода, вставьте его в проект, содержащий экземпляр типа Form с именем Form1 . Затем убедитесь, что обработчик событий связан с событием FormClosing .

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) < System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder(); messageBoxCS.AppendFormat("= ", "CloseReason", e.CloseReason ); messageBoxCS.AppendLine(); messageBoxCS.AppendFormat(" = ", "Cancel", e.Cancel ); messageBoxCS.AppendLine(); MessageBox.Show(messageBoxCS.ToString(), "FormClosing Event" ); > 
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _ Handles Form1.FormClosing Dim messageBoxVB as New System.Text.StringBuilder() messageBoxVB.AppendFormat(" = ", "CloseReason", e.CloseReason) messageBoxVB.AppendLine() messageBoxVB.AppendFormat(" = ", "Cancel", e.Cancel) messageBoxVB.AppendLine() MessageBox.Show(messageBoxVB.ToString(),"FormClosing Event") End Sub 

Комментарии

Событие FormClosing возникает при закрытии формы. При закрытии формы она удаляется, освобождая все ресурсы, связанные с формой. Если отменить это событие, форма останется открытой. Чтобы отменить закрытие формы, задайте Cancel для свойства объекта , переданного FormClosingEventArgs обработчику событий, значение true .

Если форма отображается как модальное диалоговое окно, нажатие кнопки Закрыть (кнопка с X в правом верхнем углу формы) приводит к скрытию формы, а DialogResult свойству — значение DialogResult.Cancel . Вы можете переопределить значение, присвоенное свойству DialogResult , когда пользователь нажимает кнопку Закрыть , задав DialogResult свойство в обработчике FormClosing событий для события формы.

При вызове Close метода в , отображаемом Form как немодированное окно, нельзя вызвать Show метод , чтобы сделать форму видимой, так как ресурсы формы уже освобождены. Чтобы скрыть форму и сделать ее видимой Hide , используйте метод .

Если форма является родительской формой FormClosing многодокументного интерфейса (MDI), события всех дочерних форм MDI вызываются перед событием родительской FormClosing формы MDI. Аналогичным образом события FormClosed всех дочерних форм MDI вызываются перед событием FormClosed родительской формы MDI. Отмена FormClosing события дочерней формы MDI не препятствует возникновению FormClosing события родительской формы MDI. Однако при отмене события будет задано true Cancel свойство FormClosingEventArgs класса , которое передается в качестве параметра в родительскую форму. Чтобы принудительно закрыть все родительские и дочерние формы MDI, присвойте свойству Cancel значение false в родительской форме MDI.

Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.

Закрыть форму по нажатию кнопки

Author24 — интернет-сервис помощи студентам

По нажатию кнопки на второй форме закрыть ее и показать первую
Есть 2 формы. На второй форме есть кнопка. нужно, чтобы при нажатии на эту кнопку эта же, то есть.

Не открывает форму по нажатию кнопки
Добрый день! Делаю пример книжки: при нажатии кнопки, текст из textBox вставляется в textBox в.

Как закрыть форму нажатием кнопки Esc
А как закрыть форму нажатием кнопки Esc не создавая дополнительных кнопок на форме? Вариат.

Вывести вторую форму на экран по нажатию кнопки
Добрый день. У меня возникла проблема, что никак не могу вывести вторую форму на экран по.

Эксперт .NET

6471 / 4053 / 1600
Регистрация: 09.05.2015
Сообщений: 9,488

Лучший ответ

Сообщение было отмечено Konstantan как решение

Решение

1 2 3 4
private void button1_Click(object sender, EventArgs e) { Close(); }

Регистрация: 11.05.2015
Сообщений: 74
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как при открытии формы с кнопки, закрыть предыдущую форму?
Есть форма с кнопкой, по нажатию которой переходит на другую форму. Как сделать так, чтобы форма по.

Как закрыть форму по нажатию «Еsc»
Здравствуйте друзья. В моем приложении есть формы как мне их закрывать по нажатию клавиши.

При нажатии кнопки закрыть форму в случае правильного расположения отметок в чекбоксах
поместить на форму кнопку и 3 чекбокса. При нажатии кнопки закрыть форму в случае правильного.

Как реализовать переход в другую форму по нажатию кнопки в исходной форме?
Делаю формы Form1 и Form2 На Form1 делаю кнопку для перехода на Form2 Что вписывать в кнопку?

Как сделать проверку текста в textBox1 и по нажатии кнопки закрыть форму(форма не главная)
Как сделать проверку текста в textBox1 и по нажатии кнопки закрыть форму(форма не главная)? using.

Создать форму, создать в ней таблицу, которая по нажатию кнопки заполнялась случайными числами
Доброе время суток. Я был бы очень благодарен тем, кто поможет мне разобраться с вот такой.

Или воспользуйтесь поиском по форуму:

Как закрыть форму в c при нажатии кнопки

Нравится ресурс?

Правила раздела Visual C++ / MFC / WTL (далее Раздела)

1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *