Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для sadovnic13
0 / 0 / 0
Регистрация: 01.10.2022
Сообщений: 113

Переход на новое окно

25.02.2023, 21:36. Показов 1187. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю с формами на c++. Имеется окно авторизации и после ввода верных данных нужен переход на новое окно, но есть нюан что управляющая роль остаётся на первой форме. Как сделать так чтобы открывалось новое окно, где пользователь может совершать дальнейшую работу, а первая, стартовая с авторизацией, исчезала, но после нажатия крестика закрытия на дальнейших формах завершалась программа?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.02.2023, 21:36
Ответы с готовыми решениями:

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

Новое консольное окно
Есть консольная программа, которая запускет другие консольные программы. так вот хотелось бы, чтобы для каждой программы открывалось...

Новое окно по нажатию
Был уже тред, перенос значений из виджетов в список. В итоге все было описано в одном классе и , соответственно, все показывается в одном...

7
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
25.02.2023, 21:49
С помощью событий.
Плюс, главная "форма" (окно) все равно должно быть, его можно не отображать, но она будет централизованно управлять событиями и открывать/закрывать (при необходимости) новые окна.
Давно уже с GUI не работал. Но должно получиться.
0
 Аватар для sadovnic13
0 / 0 / 0
Регистрация: 01.10.2022
Сообщений: 113
25.02.2023, 21:54  [ТС]
SmallEvil, тогда такой вопрос, может подскажите. Хочу реализовать в таком случае, при событии закрытия второй формы ,прекращение работы программы, но что написать в событие?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
25.02.2023, 22:09
sadovnic13, каким фреймворком вы пользуетесь ?
Есть несколько вариантов.
Модальные окна.
Система сообщений. (включая пользовательские).
Зависит от ситуации.
0
 Аватар для sadovnic13
0 / 0 / 0
Регистрация: 01.10.2022
Сообщений: 113
25.02.2023, 22:14  [ТС]
SmallEvil, .NET. Просто я нашел событие закрытия окна и подумал что через него можно реализовать прекращение программы при закрытие второстепенных окон(событие на них). Только вот вопрос, что в событие написать?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
26.02.2023, 02:04
Цитата Сообщение от sadovnic13 Посмотреть сообщение
Просто я нашел событие закрытия окна и подумал что через него можно реализовать прекращение программы при закрытие второстепенных окон(событие на них).
Все не так просто.
Если другие формы не модальные, то значит они почти независимые.
Явная зависимость в том, что главная форма создает и управляет временем жизни дочерней (какой бы она ни была, модальной или нет).
То есть, скорее всего, нам нельзя из дочерней формы просто вызвать закрытие главной.
Тут нужен асинхронный механизм взаимодействия.

Добавлено через 51 минуту
Сдается мне что в вашем случае стоит использовать модальные окна.
someform.ShowDialog();
Тогда все довольно тривиально.
В других случаях, нужно проявить немного смекалки и усердия.

Добавлено через 2 часа 46 минут
Немножко поигрался.
Создаем форму по клике на кнопку в главной форме :
C#
1
2
3
4
5
6
7
8
9
10
11
    ChildeForm ^ Form2;
 
    System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         Form2 = gcnew ChildeForm;
         Form2->FormClosed += gcnew FormClosedEventHandler(this, &MainForm::frm2_FormClosed);
         Form2->Show(this);
    }
    // Собственно наше событие закрытия формы
    System::Void frm2_FormClosed(System::Object^  sender, System::Windows::Forms::FormClosedEventArgs ^){
        Close();
    }
Создаем в дочерней форме событие закрытия, отвязываем ее от главной формы, убирая замкнутый цикл связи :
C#
1
2
3
    private: System::Void ChildeForm_FormClosing(System::Object^  sender, System::Windows::Forms::FormClosingEventArgs^  e) {
        this->ParentForm->RemoveOwnedForm(this);
    }
Я профан в .NET, но кажется работает.

Добавлено через 26 секунд
Это все С++/CLR

Добавлено через 1 минуту
* С++/CLI
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
26.02.2023, 20:08
sadovnic13, мне нравится решение с созданием окна авторизации в методе Main, и затем уже вызов Application::Run с основной формой.
0
 Аватар для sadovnic13
0 / 0 / 0
Регистрация: 01.10.2022
Сообщений: 113
26.02.2023, 20:35  [ТС]
OwenGlendower, ваше решение тоже имеет смысл, но пока что помог совет выше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.02.2023, 20:35
Помогаю со студенческими работами здесь

TcpServer1 и новое окно
Есть программа на которую приходит запрос с сайта, вот так выглядит код программы: Edit1->Text=""; ...

Вывод в новое окно MFC
Здравствуйте! Столкнулась с такой проблемой: мне нужно, чтобы программа при нажатии на кнопку открывала новое окно и выводила данные в...

Не выводит записи в новое окно
Есть QT , который работает с SQL Server. Вобщем по задумке хотел, чтобы при выделении записи, она выводилась в новое окно и раскидывалась...

Не могу создать новое окно
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include "QTimer" namespace Ui { class MainWindow; ...

Новое окно при нажатии на кнопку
Есть QWidget с неким контентом и кнопкой. При нажатии на эту кнопку должен открываться другой QWidget. Как это просто реализовать? Сам...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru