Выключение программы при закрытии окна (Visual Studio 2013, C#)

LazyDeer

Создаю программу, у которой при запуске открывается окно авторизации. Оно открывает главное окно с базой данных и прочим функционалом, а само скрывается.
private void button1_Click(object sender, EventArgs e)
 {
 {
 if (textBox1.Text == "admin")
 {
 if (textBox2.Text == "Av707rans-ad/")
 {
 MainForm f2 = new MainForm();
 this.Hide();
 f2.Show();
 }
 }
 else ...
 }
 }
При закрытии окна с бд(MainForm) при помощи крестика(не при нажатии на элемент button с иксом/плюсом в Text, а именно на крестик в углу рамки самого окна) сама программа не выключается, а окно авторизации, соответственно, не появляется. Можно ли как-то закрепить к закрытию окна при помощи крестика функцию выключения всей программы? Ну или запретить закрывать окно любыми способами, кроме элемента button или диспетчера задач? Перепробовал кучу вариантов, уже мозги кипят. Если такого способа нет, то как реализовать появление окна авторизации при закрытии MainForm?
10 ответов

LazyDeer

для выхода из программы используйте метод Environment.Exit(int)Главным окном считается то окно, которое открылось первым, если это явно не указывать ручками.Кто первый встал, того и тапки :)


LazyDeer

Roman Mejtes,я, видимо, совсем глупый, но я ничего не понял....)главное окно, при закрытии которого закрывается и вся программа - форма Au(она же окно авторизации)
static class Program
 {
 [STAThread]
 static void Main()
 {
 Application.EnableVisualStyles();
 Application.SetCompatibleTextRenderingDefault(false);
 Application.Run(new Au());
 }
Я так понимаю, предложенный Вами метод нужно использовать в коде формы MainForm? Если да, то, собственно, где? хD Попробовал по примеру из интернета, но ничего не происходит(


LazyDeer

запретить закрывать окно
formClosing


LazyDeer

Petro123,уже пробовал такой вариант(и не раз), никакой реакции, даже сообщения не появляются, окно просто закрывается и программа продолжает работать, так как окно авторизации не закрыто, а просто скрыто методом Hide.


LazyDeer

formClosing
LazyDeer,в событии закрытия основной формы допишите Application.Exit();закроется всё )


LazyDeer

наутилус,святые огурчики, наконец вышло! Спасибо большое, оказалось, что я пихал этот несчастный Application.Exit() не туда хДДДВы мне очень помогли))


LazyDeer

LazyDeer,:))


LazyDeer

наутилус,святые огурчики, наконец вышло! Спасибо большое, оказалось, что я пихал этот несчастный Application.Exit() не туда хДДДВы мне очень помогли))
пихал невпихуемое


LazyDeer

просто по уму, нужно после закрытия окна авторизации и создания окна программы явно указать, что это окно главное и выгрузить окно авторизации, тогда весь этот геморой отлетает


LazyDeer

наутилус,святые огурчики, наконец вышло! Спасибо большое, оказалось, что я пихал этот несчастный Application.Exit() не туда хДДДВы мне очень помогли))
Таки надо закрыть приложение, или открыть окно авторизации?