Как сделать чтобы окно программы не закрывалось

В моем проекте есть две формы: Form1 и Form2.
В Form1 есть кнопка, и то, что я хочу сделать, – это закрыть Form1 и показать Form2 при нажатии этой кнопки.

Сначала я попробовал

Form2 frm = new Form2(); frm.Show(); this.Close();

но поскольку Form1 был закрыт, Form2 также закрылся.
Затем я попробовал

Form2 frm = new Form2(); frm.Show(); this.Hide();

но есть недостаток, что приложение не выходит, когда Form2 закрыт. Поэтому мне пришлось добавить дополнительные источники в раздел form_FormClosing формы2.

Хм… Интересно, правильно ли это… Итак, каков правильный способ решения этой проблемы?

Лучший ответ:

Автоматически сгенерированный код в Program.cs был написан для завершения приложения, когда окно запуска закрыто. Вам нужно будет настроить его, чтобы он заканчивался только тогда, когда окон осталось больше. Вот так:

[STAThread] static void Main() < Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var main = new Form1(); main.FormClosed += new FormClosedEventHandler(FormClosed); main.Show(); Application.Run(); >static void FormClosed(object sender, FormClosedEventArgs e)

По умолчанию первая форма управляет временем жизни приложения Windows Forms. Если вам нужны несколько независимых окон, ваш контекст приложения должен быть отдельным контекстом из форм.

Как избавиться от консоли Python ✂


public class MyContext : ApplicationContext < private Listforms; private static MyContext context = new MyContext(); private MyContext() < forms = new List(); ShowForm1(); > public static void ShowForm1() < Form form1 = new Form1(); context.AddForm(form1); form1.Show(); >private void AddForm(Form f) < f.Closed += FormClosed; forms.Add(f); >private void FormClosed(object sender, EventArgs e) < Form f = sender as Form; if (form != null) forms.Remove(f); if (forms.Count == 0) Application.Exit(); >>

Чтобы использовать контекст, перейдите в Application.Run(вместо формы). Если вы хотите создать еще один Form1, вызовите MyContext.ShowForm1() и т.д.

Читайте также:
Расширение arj какая программа открывает

public class Program < public void Main() < Application.Run(new MyContext()); >>

Это можно сделать так:

form2 f2=new form2() this.Hide(); f2.Show();

Надеюсь, что это было полезно.

Запишите это в свой метод, который выполняется во время события FormClosing .

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) < // Display a MsgBox asking the user if he is sure to close if(MessageBox.Show(«Are you sure you want to close?», «My Application», MessageBoxButtons.YesNo) == DialogResult.Yes) < // Cancel the Closing event from closing the form. e.Cancel = false; // e.Cancel = true would close the window >>

Источник: techarks.ru

С каким параметром надо запустить команду чтобы она не закрывалась?

5f5fbc7f695a0425865892.jpeg

Плавающие окна На ксяоми

C каким параметром(ключом и т.д.) можно запустить программу из Win+R не открывая командную строку вручную, чтобы она не закрывалась после выполнения, в интернете пишут поставить в конце параметр pause или T и т.п. всё перепробовал, всё равно запускается, и сразу же закрывается после выполнения

  • Вопрос задан более двух лет назад
  • 816 просмотров

Решения вопроса 1

Не ИТ-специалист

У каждой программы свои параметры и pause у большинства нет, а если есть, то он может означать что угодно. Чтобы окно консоли после завершения консольного приложения не закрывалось сразу, вызывайте его с помощью cmd.exe , дополнив командой pause :
cmd /c ipconfig -allhttps://qna.habr.com/q/847267″ target=»_blank»]qna.habr.com[/mask_link]

ITExplain

После выполнения вышеприведенного кода программа не закроется, а будет ждать ввода. Только после ввода числа (или символа) программа завершится.

Но можно написать программу и таким образом, чтобы она завершалась после нажатия любой клавиши. В этом случае используем функцию cin.get() из библиотеки iostream .

using namespace std;

После выполнения кода программа будет ожидать нажатия любой клавиши.

Читайте также:
Программа чтобы создать аниме персонажа

2. Только под Windows

Используем функцию system и передаем ей параметр “PAUSE” из библиотеки stdlib.h . Не рекомендуется использовать данный способ!

Код:
Код:
#include
#include
#include
using namespace std;

int main ()
<
int i = 0;
cout system(“PAUSE”);
return 0;
>

Источник: it-explain.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru