|
33 / 15 / 5
Регистрация: 08.05.2013
Сообщений: 146
|
|
Отмена всех действий на форме26.08.2015, 14:45. Показов 1807. Ответов 8
Метки нет (Все метки)
В общем есть у меня приложение, все настройки его храню не в БД а в конфиге, как сохранять в конфиг и прочее разобрался, но мешает одна деталь: есть форма с настройками, все настройки переключаются с помощью CheckBox. Допустим я на этой форме понажимал кучу CheckBox далее по нажатию кнопки ОК у меня стоит сохранение тех или иных параметров в конфиг и сохранение отоброжения выбранных чекбоксов(тоесть при последующем открытии приложения и формы соответственно выбранные ранее чекбоксы остаются выбранными) .
Но допустим если я понажимал какието чекбоксы, но потом взял и передумал и на второй кнопке у меня просто стоит me.close() а когда открываешь форму заного эти же чек боксы остаются выбранными, или же наоборот снял чекбоксы закрыл форму с помощью второй кнопки а если заного открыть то естественно все снятые чекбоксы такими же и остаются. Естественно после закрытия и открытия приложения все перерисовывается. Копать глобальнее мне лень+плюс не такое глабальное приложение чтоб БД под него юзать или еще чего. Просто подскажити возможно ли отменить все действия на форме или же вызвать событие какое нить перерисовывающее форму в предыдущее состояние. Надеюсь я более менее доступно и развернуто объяснил. Если будут нужны куски кода той формы или еще чего естественно допишу.
0
|
|
| 26.08.2015, 14:45 | |
|
Ответы с готовыми решениями:
8
Отмена действий Отмена действий в DbGrideh Отмена действий кнопкой |
|
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
|
|
| 26.08.2015, 15:10 | |
|
Mehonchegg,
Можно сделать по такому принципу - При изменении "CheckBox.CheckState" может становится активной кнопка "Сохранить Настройки" или меняться значение переменной типа Boolean, чтобы при закрытии формы производилась проверка на изменение настроек, и выдавался "MessageBox" с кнопками Ok и Cancel для возможности выбора сохранить настройки или нет.
0
|
|
|
33 / 15 / 5
Регистрация: 08.05.2013
Сообщений: 146
|
|
| 26.08.2015, 15:42 [ТС] | |
|
vova2112, Это я тоже пробовал, мне не подходит. При нажатии на ОК настройки сохраняются, а при нажатии на Cancel ничего не происходит кроме закрытия формы, но допустим я открыл форму и снял несколько чекбоксов и нажал кансел - настройки не сохранились форма закрылась, а если приложение не было закрыто и снова открыть форму с настройками то убранные чекбоксы так и остаются убранными, пробовал вертеть параметры my.settings. ...... там 4 параметра reset, reload, upgrade и save - ни один тоже не подходит. В общем мне нужно чтоб при нажатии на Cancel все что было сделано на форме, а это выбор либо снятие чекбоксов, отменялось а при нажатии на ОК помимо сохранения в конфиг еще и оставалось в том же состоянии при последующем открытии формы
Добавлено через 2 минуты если как ты говоришь пробовать то простой пример - я же могу просто открыть форму и посмотреть ничего не делая и закрыть ее то отслеживать CheckState не вариант
0
|
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
|
| 26.08.2015, 15:54 | |
|
настроечную форму вызывай через создание ее нового экземпляра. А установка состояния чекбоксов (и прочего на ней) - это во время открытия нового экземпляра формы.
А сейчас, я подозреваю, что открывается/закрывается один и тот же экземпляр.
0
|
|
|
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
|
|
| 27.08.2015, 08:52 | |
|
Как вариант - это создание массива длина которого равна количеству чекбоксов. После открытия формы и "расставления" галок записывать состояние чекбоксов (checkbox1.checked) в массив . Перед выполнением Me.close() восстанавливаем состояние чекбоксов из массива.
Или как написал Юпатов Дмитрий форму с настройками открывать не Form2.showdialog(), а Form2.show().
0
|
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
||
| 27.08.2015, 08:54 | ||
|
1
|
||
|
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
|
|
| 27.08.2015, 09:09 | |
|
0
|
|
|
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
||||||
| 27.08.2015, 11:34 | ||||||
Сообщение было отмечено Mehonchegg как решение
Решение
в load настроечной формы - процедуру чтения настроек из файла конфигурации и соответственно им установку состояния контролов в кнопку OK настроечной формы - процедуру записи настроек в файл конфигурации в кнопку Отмена - просто закрытие формы без перезаписи настроек
2
|
||||||
|
33 / 15 / 5
Регистрация: 08.05.2013
Сообщений: 146
|
|||||||||||
| 28.08.2015, 11:51 [ТС] | |||||||||||
|
Юпатов Дмитрий, я пересмотрел все свое приложение и всеж Ваш способ лучший. Добавил в насроечный класс нужные мне параметры, к настроечной форме привязал событие Load в нем прописл что да как. при Cancel.click закрываем экземпляр формы а при OK.Click сохраняем те или иные параметры при условии какой из боксов в состоянии cheked. К событиям(Load) форм у которых меняются параметры сделал привязку свойств элементов управления к параметрам из настроечного класса с помощью My.Settings вот например кусок кода меняющий параметры насроечной формы с которой собственно все и началось, то что в ней не суть (проверял просто), суть как реализовал
0
|
|||||||||||
| 28.08.2015, 11:51 | |
|
Помогаю со студенческими работами здесь
9
MessageBox отмена действий Отмена действий пользователя
Многократная отмена действий Отмена действий макросом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|