Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
10 / 9 / 2
Регистрация: 12.04.2015
Сообщений: 238
Записей в блоге: 2
1

Как переключиться на вторую форму, закрыв первую?

30.06.2015, 23:53. Показов 2828. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
!!! внимание !!! 3-й день как поставил Visual Studio , так что вопросов много.... Я создаю форму так:
C#
1
2
3
4
5
6
 private void button1_Click(object sender, EventArgs e)
        {
            Form1.ActiveForm.Hide();
            Form2 datainsform = new Form2();
            datainsform.Show();
        }
но форма 1 скрывается и остается работать в фоне. т е когда я закрываю 2-ю форму (красным крестиком в правом верхнем углу экрана, XDDDD) и на экране больше НИ ОДНОЙ формы, VS пишет что приложение не остановлено. Внимание, вопрос! Как вырубить эту гребаную форму?(программно, естесстно)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.06.2015, 23:53
Ответы с готовыми решениями:

Как закрыть первую форму и открыть вторую
Как закрыть первую форму и открыть вторую? Form2 f = new Form2(); f.Show(); ...

Как открыть вторую форму, спрятав первую?
Здравствуйте! Наткнулся вот на такую проблему. На кнопку на первой форме у меня вот такой код: ...

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

Как одновременно открыть вторую форму и закрыть первую
У меня такая проблема. Я пытаюсь одновременно открыть вторую форму и закрыть первую форму через...

5
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
01.07.2015, 00:01 2
danyasworld,
Закрытие первой (главной) формы приводит к закрытию программы.
Если первая нужна только для выполнения каких-либо действий при старте программы (например для ввода пароля), то лучше сделать стартовой форму 2, а основной первую. В методе, обрабатывающем загрузку 1-й формы укажите
C#
1
2
3
4
5
private void Form1_Load(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    f2.ShowDialog();
}
При этом при запуске программы появится 2-я форма, а после ее закрытия 1-я. При закрытии 1-й формы произойдет закрытие программы.
0
10 / 9 / 2
Регистрация: 12.04.2015
Сообщений: 238
Записей в блоге: 2
01.07.2015, 00:55  [ТС] 3
Даценд, но 1-я форма основная. После обработки данных в форме 2 идет возврат на форму 1. но если закрыть форму 2 пока форма 1 .hide() приложение не закроется совсем и останется висеть, или я чтото не так понял?
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
01.07.2015, 01:04 4
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Цитата Сообщение от danyasworld Посмотреть сообщение
если закрыть форму 2 пока форма 1 .hide() приложение не закроется совсем и останется висеть
Да.
Но можно в форме 2 сделать кнопку, в обработчике которой прописать
C#
1
Application.Exit();
При нажатии на кнопку программа закроется.

Добавлено через 1 минуту
А еще можно 1-ю так прятать, а после закрытия 2-й автоматически показывать:
C#
1
2
3
4
this.Hide();
Form2 f2 = new Form2();
f2.ShowDialog();
this.Show();
1
10 / 9 / 2
Регистрация: 12.04.2015
Сообщений: 238
Записей в блоге: 2
01.07.2015, 01:58  [ТС] 5
Цитата Сообщение от Даценд Посмотреть сообщение
А еще можно 1-ю так прятать, а после закрытия 2-й автоматически показывать:
а это вариант
0
471 / 234 / 73
Регистрация: 25.05.2012
Сообщений: 1,054
Записей в блоге: 1
02.07.2015, 10:37 6
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

danyasworld,
можно динамически изменить точку входа
например

C#
1
2
3
4
5
6
7
8
9
10
static class Program
   {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1()); // "главная форма" приложения
        }
    }
На Form1 нажимаем кнопку
C#
1
2
3
4
5
private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
            new Thread(() => Application.Run(new Form2())).Start();
        }
Form1 закрывается "СОВСЕМ". Form2 становится "главной формой" приложения.
1
02.07.2015, 10:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2015, 10:37
Помогаю со студенческими работами здесь

Как открыть новую форму, закрыв при этом первую ?
Сабж. Сейчас просто открывается две формы. Использую такой код: Form MainForm1 = new...

Закрыть первую форму и перейти на вторую форму
Как сделать, чтоб на 1-й форме, нажав кнопку выход закрылась вся первая форма, а при нажатии на...

Открыть вторую форму и скрыть первую
Скажите почему в форме, которая содержит класс, нельзя сделать вот так: Form2 a=new Form2();...

При первом запуске программы показывать первую форму, а при остальных вторую форму
при первом запуске программы показывать первую форму а при остальных вторую форму


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru