Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
3 / 3 / 1
Регистрация: 17.02.2013
Сообщений: 63

Поочередное открытие форм

03.11.2013, 19:14. Показов 1673. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
работаю с двумя формами. вначале запускается Form1, я скрываю ее и открываю в форме модального окна Form2. На второй форме есть checkbox и 2 кнопки (открытие Form1 и закрытие Form2(если выбран checkbox) и выход из приложения). Проблема в том, что при закрытии второй формы справа вверху окна (через крестик) происходит открытие первой формы. Что нужно исправить? Помогите пожалуйста, а то уже долго сижу и понять не могу
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
            Form2 form2 = new Form2();
            form2.ShowDialog();
        }
 
 
 private void Input_Click(object sender, EventArgs e)
        {
            if (checkTrue.Checked)
            {
                Form2.ActiveForm.Close();
                Form1.ActiveForm.Show();
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2013, 19:14
Ответы с готовыми решениями:

Открытие форм
Как ограничить открытие одной и той же формы одним экземпляром? Желательно сделать это со всеми формами в программе. Есть какие-то...

Открытие форм
Я из одной формы перехожу в другую, потом должен нажать кнопку и открыть третью При нажатии на кнопку, которая закрывает форму, эта форма...

Открытие/закрытие форм
Есть 2 формы, на первой форме есть кнопка, как сделать, чтобы при нажатии на кнопку открывалась форма 2 и закрывалась форма 1, именно...

9
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
03.11.2013, 21:02
а должно быть как? непонятно же
0
3 / 3 / 1
Регистрация: 17.02.2013
Сообщений: 63
03.11.2013, 21:06  [ТС]
Цитата Сообщение от sezada Посмотреть сообщение
а должно быть как? непонятно же
При запуске программы нужно главную форму (Form1) скрыть и открыть вторую форму (Form2). На второй форме есть кнопка с checkbox'ом. Если checkbox выбран, то по нажатию кнопки вторая форма закрывается и открывается главная форма (Form1)
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
03.11.2013, 21:32
C#
1
2
3
4
5
6
7
private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
            Form2 form2 = new Form2();
            form2.Closing += (e, s) => { this.Show();};
            form2.ShowDialog();
        }
0
3 / 3 / 1
Регистрация: 17.02.2013
Сообщений: 63
03.11.2013, 21:52  [ТС]
выдает следующую ошибку:
A local variable named 'e' cannot be declared in this scope because it would give a different meaning to 'e', which is already used in a 'parent or current' scope to denote something else
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
03.11.2013, 23:41
тогда используйте любое другое незанятое имя. например, ea
0
3 / 3 / 1
Регистрация: 17.02.2013
Сообщений: 63
04.11.2013, 01:36  [ТС]
Цитата Сообщение от sezada Посмотреть сообщение
тогда используйте любое другое незанятое имя. например, ea
спасибо за терпение, но все равно работает не так как нужно.
код, написанный мною выше работает. при загрузке первой формы происходит скрытие главной формы и открытие второй формы. Кнопка Input на второй форме закрывает вторую форму и открывает первую. Проблема в том, что в коде
C#
1
2
Form2.ActiveForm.Close();
Form1.ActiveForm.Show();
постоянно после закрытия второго окна открывается главная форма (не только при нажатии на кнопку, но и при щелчке по крестику в правой части окна). Как это исправить? Есть ли какой-то обработчик такого события, что при щелчке по крестику происходил полный выход из приложения? (подобно Application.Exit())
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
04.11.2013, 01:44
не понял, простите. если нужно закрыть все приложение полностью, то для этого достаточно закрыть родительскую форму. чтобы различать, как именно была закрыта форма, добавьте в нее поле, в котором будете что-то хранить. если форма закрывается нажатием кнопки, то меняйте значение в этом поле. если закрыта крестиком, то остается старым. тогда в родительской форме можно будет проверить состояние поля и определить источник закрытия формы
1
3 / 3 / 1
Регистрация: 17.02.2013
Сообщений: 63
04.11.2013, 09:44  [ТС]
а как это сделать на программном уровне?

Добавлено через 34 минуты
sezada, спасибо за помощь. уже разобрался
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
04.11.2013, 18:46
используй метод Form_Closed
и пропиши
C#
1
Application.Exit();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2013, 18:46
Помогаю со студенческими работами здесь

Открытие форм каскадно
Есть форма, на ней масса кнопок, при нажатии на кнопки открывается открывается другая форма, но с разными данными(заголовком и тд). Можно...

Открытие/Закрытие форм
Как сделать, чтобы новая форма открывалась точно на том месте, на котором СКРЫЛАСЬ старая?

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

Создание и открытие форм
Добрый день! При работе с формами мне нужно,чтобы при нажатии на кнопку but1 из Form1,открывалась Form2, при этом при повторном нажатии на...

Открытие конструктора форм
Знаю тема мусолилась много раз, но все ответы которые там предлагают не подходят.VS 2019. Создаю проект. Выбираю открыть в конструкторе и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru