|
4 / 4 / 1
Регистрация: 08.08.2014
Сообщений: 83
|
||||||
WPF Как свернуть родительскую форму пока открыта вторая форма11.11.2019, 11:07. Показов 2112. Ответов 10
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане!
Подскажите, пожалуйста, как решить такую проблему! Есть основная форма MainWindow, на основной форме есть кнопка по клику, на которой вызывается 2 форма ChildWindow, первая форма для второй является родителем. Так вызываю вторую форму
Заранее спасибо
0
|
||||||
| 11.11.2019, 11:07 | |
|
Ответы с готовыми решениями:
10
Первая форма недоступна, пока вторая открыта!
Необходимо приостановить выполнение кода первой формы, пока открыта вторая |
|
Модератор
|
|
| 11.11.2019, 11:49 | |
|
Tanyusha, совершенно не понял!
Вы хотите скрыть основное окно, но потом пишите что скрытие вам не нравится. А что вы хотите собственно реализовать? Если можно подробнее и с картинками.
0
|
|
|
4 / 4 / 1
Регистрация: 08.08.2014
Сообщений: 83
|
||
| 11.11.2019, 11:59 [ТС] | ||
|
А получается, что под второй формой лежит подложкой первая форма. Если свернуть первую форму, то с ней сворачивается и вторая форма
0
|
||
|
WPF Разработчик
463 / 167 / 42
Регистрация: 20.02.2018
Сообщений: 285
|
|||||||||||
| 11.11.2019, 12:14 | |||||||||||
|
Tanyusha, абсолютно верно. Ваша 2ая форма стала зависима от 1ой после строки
Для того, что бы такого не происходило Вам необходимо либо отвязать, т.е. не использовать сhildWindow.Owner, либо сворачивать и разворачивать форму через код используя методы
2
|
|||||||||||
|
4 / 4 / 1
Регистрация: 08.08.2014
Сообщений: 83
|
||
| 11.11.2019, 13:38 [ТС] | ||
|
Визуальное отображение отдельно. Процедуры, запросы отдельно. Родитель назначен для второй формы, потому что из второй формы я обновляю некоторые значения в первой по мере их изменений во второй
0
|
||
|
Модератор
|
|
| 11.11.2019, 14:12 | |
|
Tanyusha, отдельно это как?
В CB окна есть что-нибудь для работы с данными? По существу вам уже ответил sttrox. Не надо устанавливать отношение родитель-ребенок между окнами. А вот детали реализации зависит от деталей вашего решения. Если делать всё правильно по канонам MVVM, то для управления окнами надо добавить интерфейс. В разделе есть несколько тем где обсуждается как его реализовать и использовать.
0
|
|
|
WPF Разработчик
463 / 167 / 42
Регистрация: 20.02.2018
Сообщений: 285
|
|
| 11.11.2019, 14:31 | |
|
Элд Хасп, сомниваюсь что у нашего героя ТС, есть время и желание разбираться в MVVM. Полагаю там оно и лишним будет, очень простое приложение.
Tanyusha, Вам следует оставить присвоение владельца в том случае, если после закрытия 1ой формы надо закрыть и 2ую. Если надо передать данные, то Вы можете написать класс с необходимыми свойствами, сохранить в 1ой форме, и при создании 2ой, передать через конструктор или свойство во 2ую. Данные будут меняться там и там, поскольку Ваш класс будет ссылочным типом(к примеру с int, так не сработает по тому что это тип значение). Так же Вы можете сделать статическую переменную и обращаться к ней. Однако этого не рекомендую.
0
|
|
|
Модератор
|
|||||||||||||||||||||
| 11.11.2019, 16:58 | |||||||||||||||||||||
|
Tanyusha, попробую описать в общем виде.
Для передачи данных между формами создаёте какой-то простой класс (название класса и свойств условны).
Инициализируете их в конструкторе
Второе окно надо показывать через модальный диалог.
1
|
|||||||||||||||||||||
|
4 / 4 / 1
Регистрация: 08.08.2014
Сообщений: 83
|
|||||||||||
| 12.11.2019, 15:18 [ТС] | |||||||||||
|
Элд Хасп, спасибо за развернутый ответ. Но я пока не очень понимаю, как в моем случае передать данные из второй формы в первую.
У меня на второй форме, условно, кнопка "Сохранить", по которой данные со второй формы передаются в базу Sql. И по этой же кнопке я даю сигнал на обновление данных на первой форме из базы (на первой форме обновляется treeView и Grid) Т.е. я не понимаю, как дать знать первой форме, что уже ей надо обновляться и читать данные переданные из второй формы, если действовать тем методом, который предложили вы. Добавлено через 5 минут Я попробовала и этот способ, который предложил sttrox
Добавлено через 42 минуты Реализовала все же через
0
|
|||||||||||
|
Модератор
|
|
| 12.11.2019, 20:01 | |
|
Tanyusha, если вы используете модальный показ окна как я показал, то логика форм будет работать последовательно.
После вызова childWindow.ShowDialog(); управление перейдет к дочерней форме и вернуться в родительскую только после закрытия дочерней. Для передачи данных используете поле data. Так же как я показал в родительской форме, можно записывать или получать данные и в дочерней форме.
1
|
|
| 12.11.2019, 20:01 | |
|
Помогаю со студенческими работами здесь
11
Остановить выполнение функции пока открыта форма
Как создать динамическую форму, если её родитель - вторая форма? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|