|
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
|
||||||
Отмена события закрытия формы Form.Closed()15.02.2015, 21:59. Показов 22189. Ответов 13
Метки нет (Все метки)
Собственно, проблема исходит из следующего:
При закрытии формы вызываю MessageBox с вариантами Да/Нет.
При нажатии на кнопку "Нет", т.е. под ней подразумевается отмена закрытия формы, форма всё равно закрывается. Вопрос: как избежать повторного появления MessageBox (чтобы исключить повторные записи) и как отменить закрытие формы ? Может быть можно как-то иначе решить эту проблему ?
0
|
||||||
| 15.02.2015, 21:59 | |
|
Ответы с готовыми решениями:
13
Отмена обработчика события |
|
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
|
|
| 15.02.2015, 22:10 | |
|
FallenAngel76ru, зачем ты это все в условие засунул? вынеси messagebox с условия. а в условии пропиши dialogresult
0
|
|
|
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
|
|
| 15.02.2015, 22:18 [ТС] | |
|
Окей, попробую, но позже.
А отмену закрытия при нажатии на "Нет" тогда как сделать ?
0
|
|
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
||||||||||||
| 15.02.2015, 22:21 | ||||||||||||
|
FallenAngel76ru, нужно обрабатывать событие FormClosing, ибо оно происходит перед закрытием, а то что ты используешь FormClosed оно происходит после закрытия
или проще
3
|
||||||||||||
|
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
|
|
| 15.02.2015, 22:22 [ТС] | |
|
Я по-ходу лажанул сам..) Щас исправлюсь.
При вызове FormClosed() он при выборе "Да" нормально записывает одну запись, а при FormClosing() он выкидывает MessageBox 2 раза, тем самым делая 2 записи. И надо наоборот: если нажали "Да" - форму закрыть, если нажали "Нет" - оставить форму открытой. Но проблема с нажатием "Да" написана выше.
0
|
|
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
||||||
| 15.02.2015, 22:42 | ||||||
|
FallenAngel76ru, забыл напомнить про closingReason
0
|
||||||
|
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
|
||||||
| 15.02.2015, 22:54 [ТС] | ||||||
|
CloseReason - Насколько я понял, если пользователь пытается закрыть программу другими путями (т.е. не на крестик). Тогда этот перехват тоже надо сделать..
Просто объясню смысл. Пользователь проходит тест. Если он не дошел его до конца, а решил закрыть и пробежаться заново, то ему это надо запретить, для этого сделав в базу запись о том, что он тест уже проходил, хоть и не дошёл до конца. Вот и нужно обработать закрытие формы. Т.о получается следующее:
Upd. Не, хрень какая-то.. Так у меня выкидывает 2 раза MessageBox и делает 2 записи, о чём я и писал ранее.
0
|
||||||
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
||
| 15.02.2015, 23:33 | ||
|
а нужно просто знать прошел он его или нет, то есть если прошел до конца то ставим "галочку" где то у нас в базе.. ибо самое простое что можно сделать - вырубить комп, и никакой мего умный код по отлавливанию не поможет..
0
|
||
|
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
|
|
| 15.02.2015, 23:41 [ТС] | |
|
Ну, комп вырубать - никто не вырубит. Себе дороже будет, ибо время тикает.
А это сделать нужно, ибо надо защитить от простого "тыканья" вопросов с целью повторного перепрохождения. Конечный результат уже сделан(запись в базу при полном прохождении), а вот такую хрень не могу никак сделать.
0
|
|
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
||
| 15.02.2015, 23:55 | ||
|
мы должны только считать количество попыток пройти тест, и количество сколько раз тест прошли, также можно сделать что результаты засчитываются только после полного прохождения всех вопросов, и тогда ни как не узнаешь какой результат ты за это получишь, пока не пройдешь полностью тест. еще можно поставить ограничение на время, то есть например можно проходить не чаще трех раз в сутки.
0
|
||
|
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
|
||||||
| 16.02.2015, 00:38 | ||||||
|
FallenAngel76ru,
Так форму можно открыть на весь экран. Безо всяких управляющих значков на форме и меню снизу Windows.
Но, вроде в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows NT\CurrentVersion\Winlogon поставить DisableCAD значение 0. Тут я не буду утверждать наверняка.
1
|
||||||
|
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
|
|
| 16.02.2015, 00:42 [ТС] | |
|
Диспетчер по умолчанию отключен для обычного пользователя. Поэтому через него снять задачу будет невозможно.
Так же программа будет стоять на XP, и там в панели задач вроде как нет контекстного меню "Закрыть" для открытого приложения..сработает только Alt + F4 в принципе.. А так да..спасибо за идею с BorderStyle..) не подумал как-то даже (:
0
|
|
|
1 / 1 / 0
Регистрация: 22.07.2019
Сообщений: 39
|
||||||
| 01.01.2020, 22:33 | ||||||
|
Чтобы messagebox не выскакивал 2 раза используйте это
0
|
||||||
|
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,098
|
||
| 03.01.2020, 17:25 | ||
|
0
|
||
| 03.01.2020, 17:25 | |
|
Помогаю со студенческими работами здесь
14
Отмена закрытия формы Отмена или обработка закрытия формы Как отменить выполнение функции? Отмена закрытия формы.
Обработка события закрытия формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ПЛИС
zxcha1ka_ 27.01.2026
AHDL
Разработать программы для синтеза следующих устройств:
1. Параллельного регистра
4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением);
Пoмoгитe пoжaлyйстa
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
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"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|