Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
1

Выполнять ряд действий, пока окно не закрыто. Как это сделать?

03.11.2018, 18:37. Показов 4764. Ответов 69
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
В моей программе будет блок действий, которые необходимо выполнять с задержкой до того момента, пока окно не будет закрыто.
Как это сделать? Для примера будем с задержкой в одну секунду увеличивать переменную на 1, которая изначально равна 0, а когда закроем окно - результат запишется в файл.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2018, 18:37
Ответы с готовыми решениями:

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

Выполнение каких-либо действий в цикле, пока приложение не будет закрыто
Возник вопрос с зацикливанием программы. Знаю что вопрос глупый (т.к. VB.NET пошагово все...

Можно ли запретить юзеру возвращаться из окна (window.open) в родительское окно, пока не оно не будет закрыто?
У меня раньше был код, где открывалось окно (window.open). В этом окне при нажатии на кнопочку...

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

69
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 21:18  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А почему у Вас win4_1 ? Пишите просто win4 - у Вас же в этом методе больше не будет ссылок на окно.
Изменил на win4, но ошибку это, к сожалению, не уберет
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 21:19 22
Исправили?

Добавлено через 28 секунд
Цитата Сообщение от Imperion Посмотреть сообщение
Изменил на win4, но ошибку это, к сожалению, не уберет
Это не уберёт.
Где сейчас ошибка?

Добавлено через 25 секунд
TeamViewer есть?
1
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 21:22  [ТС] 23
Цитата Сообщение от Элд Хасп Посмотреть сообщение
TeamViewer есть?
Неа, нету
Ошибка как в предпоследнем посте на предыдущей странице
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 21:27 24
Цитата Сообщение от Imperion Посмотреть сообщение
Ошибка как в предпоследнем посте на предыдущей странице
Блин! Это из-за разных потоков в таймере и у элементов.
Это надо сидеть и переделывать - так с просто не смогу сказать.
Я таким образом приложения не собираю - поэтому с такой ошибкой не сталкивался.
Надо собирать приложение подобное Вашему и проверять.
1
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 21:31  [ТС] 25
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Блин! Это из-за разных потоков в таймере и у элементов.
Это надо сидеть и переделывать - так с просто не смогу сказать.
Я таким образом приложения не собираю - поэтому с такой ошибкой не сталкивался.
Надо собирать приложение подобное Вашему и проверять.
А можно как-то переделать приложение, но "малой кровью"?
Чтобы не все под ноль писать заново
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 21:38 26
А что у Вас в приложении?
1
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 21:40  [ТС] 27
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А что у Вас в приложении?
В каком смысле?
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 21:42 28
Много кода?
Посмотрите в теме Как передать значение Slider с формы 2 на форму 1?
Там есть таймер который выводит информацию в элементы окна.
Если делать правильно, то делать надо как в последнем посте.
1
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 21:47  [ТС] 29
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Много кода?
Всего 4 формы:
- авторизация
- настройки
- вывод окна с диалогами (всего 8 избранных диалогов)
- окно с историей сообщений с одним из 8 избранных пользователей

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Посмотрите в теме Как передать значение Slider с формы 2 на форму 1?
Там есть таймер который выводит информацию в элементы окна.
Если делать правильно, то делать надо как в последнем посте.
Спасибо большое! Попробую реализовать.
Вы очень сильно помогли!
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 21:51 30
Цитата Сообщение от Imperion Посмотреть сообщение
Спасибо большое! Попробую реализовать.
Вы очень сильно помогли!
Могу посмотреть целиком Ваше приложение. Если есть желание - поставьте TeamViewer через состыкуемся.
0
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 21:54  [ТС] 31
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Могу посмотреть целиком Ваше приложение. Если есть желание - поставьте TeamViewer через состыкуемся.
Там в кодах других окон черт ногу сломит) Я писал это все сильно на скорую руку
Это приложение вообще мой самый первый опыт C#+WPF+vk net
Попробую дальше самостоятельно разобраться
Вы и так мне очень сильно помогли, за что Вам огромное спасибо!
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 21:58 32
НУ, у Вас приложение - 4 окна. Vk - я сам замучаюсь в нём разбираться. Хотите чтобы посмотрел ставьте TeamViewer

Добавлено через 1 минуту
Цитата Сообщение от Imperion Посмотреть сообщение
Там в кодах других окон черт ногу сломит
Вам другие окна зачем? Вам оттуда нужна только связь Model-ViewModel-View. Как данные (цвет) попадают от таймера в окно.
0
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 22:08  [ТС] 33
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вам другие окна зачем? Вам оттуда нужна только связь Model-ViewModel-View. Как данные (цвет) попадают от таймера в окно.
Приложение идет последовательно. Сначала авторизуемся - затем настраиваемся (эти два окна можно слить в одно, если знать как. В Qt Creator есть для этого слайдер, который можно поместить на форму. В WPF я не знаю, есть ли такая штука), но дальше уже идут нестандартные окна и с ними отдельная работа идет
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 22:11 34
Цитата Сообщение от Imperion Посмотреть сообщение
В Qt Creator есть для этого слайдер, который можно поместить на форму. В WPF я не знаю
Так Вы в чём пишите?
0
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 22:12  [ТС] 35
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Так Вы в чём пишите?
Visual Studio 2017
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 22:19 36
А причём здесь Qt Creator?

Добавлено через 2 минуты
Попробуйте использовать вместо Timer класс DispatcherTimer - он по моему в одном потоке с UI элементами работает.

Добавлено через 50 секунд
https://metanit.com/sharp/uwp/4.11.php
0
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
03.11.2018, 22:20  [ТС] 37
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А причём здесь Qt Creator?
Я говорю, что в Qt Creator можно на одной форме сделать несколько страниц при помощи соответствующего виджета и передавать данные уже не между формами, а между страницами
Это вроде попроще. А в VS я не знаю, есть ли такое

Добавлено через 53 секунды
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Попробуйте использовать вместо Timer класс DispatcherTimer - он по моему в одном потоке с UI элементами работает.
Добавлено через 50 секунд
https://metanit.com/sharp/uwp/4.11.php
Хорошо, сейчас пробну
0
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 22:21 38
Цитата "Класс DispatcherTimer из пространства имен System.Windows.Threading применяется в WPF-приложениях и выполняется в рамках потока пользовательского интерфейса."
https://professorweb.ru/my/csh... 1/1_15.php
1
177 / 151 / 31
Регистрация: 28.09.2018
Сообщений: 204
03.11.2018, 22:25 39
Imperion, на всякий случай: при подобном применении таймера важно не наступить на классические грабли с таймером, когда обработчик тика таймера работает дольше, чем период таймера. А в ситуации, когда по таймеру запрашиваются данные с интернета, в это влетаешь с 99,9% вероятностью...

Если данные грабли учтены, то сорри, не вникал в код...
1
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
03.11.2018, 22:27 40
Цитата Сообщение от Imperion Посмотреть сообщение
Я говорю, что в Qt Creator можно на одной форме сделать несколько страниц при помощи соответствующего виджета и передавать данные уже не между формами, а между страницами
Это вроде попроще. А в VS я не знаю, есть ли такое
Можно. Но прямой реализации нет. Лучше UserControl создать. Но в любом случае, WPF очень сильно завязана на паттерн MVVM. И использовать WPF вне этого паттерна - это создание проблем самому себе.

Добавлено через 1 минуту
Imperion, прислушайтесь к посту griffon88.
Лучше переделайте нормально в паттерне MVVM.
1
03.11.2018, 22:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2018, 22:27
Помогаю со студенческими работами здесь

Как не дать выбрать окно, пока запущено другое, например как это делает MessageBox
123

Как заблокировать вызов нового дочернего окна пока не закрыто предыдущее в MDI parent form
Привет ребятушки!!! Не подскажете, как заблокировать открытие дочернего окна в родительском,...

div-ное окно!или я не знаю как это сделать(
Ребят как сделать,чтобы при переходе по закладкам правая часть формы менялась без перехода на...

Win API, как отследить было ли закрыто окно приложения.
Нахожу HWND приложения которое запущено, командой FindWindow. Через 10 секунд повторная процедура...


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

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