Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Mehonchegg
33 / 15 / 5
Регистрация: 08.05.2013
Сообщений: 146

Отмена всех действий на форме

26.08.2015, 14:45. Показов 1807. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем есть у меня приложение, все настройки его храню не в БД а в конфиге, как сохранять в конфиг и прочее разобрался, но мешает одна деталь: есть форма с настройками, все настройки переключаются с помощью CheckBox. Допустим я на этой форме понажимал кучу CheckBox далее по нажатию кнопки ОК у меня стоит сохранение тех или иных параметров в конфиг и сохранение отоброжения выбранных чекбоксов(тоесть при последующем открытии приложения и формы соответственно выбранные ранее чекбоксы остаются выбранными) .
Но допустим если я понажимал какието чекбоксы, но потом взял и передумал и на второй кнопке у меня просто стоит me.close() а когда открываешь форму заного эти же чек боксы остаются выбранными, или же наоборот снял чекбоксы закрыл форму с помощью второй кнопки а если заного открыть то естественно все снятые чекбоксы такими же и остаются. Естественно после закрытия и открытия приложения все перерисовывается. Копать глобальнее мне лень+плюс не такое глабальное приложение чтоб БД под него юзать или еще чего. Просто подскажити возможно ли отменить все действия на форме или же вызвать событие какое нить перерисовывающее форму в предыдущее состояние. Надеюсь я более менее доступно и развернуто объяснил.
Если будут нужны куски кода той формы или еще чего естественно допишу.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.08.2015, 14:45
Ответы с готовыми решениями:

Отмена действий
Есть форма, на ней кнопки - Добавить Изменить Сохранить Отмена Подскажите как мне реализовать отмену действий. Слышал что есть...

Отмена действий в DbGrideh
Подскажите пож. можно ли отменить изменения в DBGridEh после сохранения, примерно как в...

Отмена действий кнопкой
Здравствуйте!Столкнулась с такой проблемой - вывожу таблицу БД на форму, делаю по ней сортировку и поиск. при поиске в таблице отображается...

8
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
26.08.2015, 15:10
Mehonchegg,
Можно сделать по такому принципу - При изменении "CheckBox.CheckState" может становится активной кнопка "Сохранить Настройки" или меняться значение переменной типа Boolean, чтобы при закрытии формы производилась проверка на изменение настроек, и выдавался "MessageBox" с кнопками Ok и Cancel для возможности выбора сохранить настройки или нет.
0
 Аватар для Mehonchegg
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
 Аватар для Desh
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
Цитата Сообщение от Desh Посмотреть сообщение
Или как написал Юпатов Дмитрий форму с настройками открывать не Form2.showdialog(), а Form2.show().
Ну я не совсем это имел в виду... К тому же новый экземпляр формы позволит открывать ее и в диалоговом режиме, что для настроечной формы обычно и делается.
1
 Аватар для Desh
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 как решение

Решение

VB.NET
1
2
Dim NF as New Имя_настроечной_формы
NF.showdialog
Добавлено через 3 минуты
в load настроечной формы - процедуру чтения настроек из файла конфигурации и соответственно им установку состояния контролов
в кнопку OK настроечной формы - процедуру записи настроек в файл конфигурации
в кнопку Отмена - просто закрытие формы без перезаписи настроек
2
 Аватар для Mehonchegg
33 / 15 / 5
Регистрация: 08.05.2013
Сообщений: 146
28.08.2015, 11:51  [ТС]
Юпатов Дмитрий, я пересмотрел все свое приложение и всеж Ваш способ лучший. Добавил в насроечный класс нужные мне параметры, к настроечной форме привязал событие Load в нем прописл что да как. при Cancel.click закрываем экземпляр формы а при OK.Click сохраняем те или иные параметры при условии какой из боксов в состоянии cheked. К событиям(Load) форм у которых меняются параметры сделал привязку свойств элементов управления к параметрам из настроечного класса с помощью My.Settings вот например кусок кода меняющий параметры насроечной формы с которой собственно все и началось, то что в ней не суть (проверял просто), суть как реализовал
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If CheckBox1.Checked Then
            My.Settings.Check = True
            My.Settings.Form11 = FormWindowState.Maximized
        Else
            My.Settings.Check = False
            My.Settings.Form11 = FormWindowState.Normal
        End If
 
        If CheckBox2.Checked Then
            My.Settings.Check1 = True
        Else
            My.Settings.Check1 = False
 
        End If
        Me.Close()
        Form1.frm = Nothing
    End Sub
А тут то что грузится при открытии формы
VB.NET
1
2
3
4
 Private Sub Settings_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        CheckBox1.Checked = My.Settings.Check
        CheckBox2.Checked = My.Settings.Check1
    End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.08.2015, 11:51
Помогаю со студенческими работами здесь

MessageBox отмена действий
Здравствуйте, возможно мой вопрос вам покажется простым. Есть функция, которые проводит вычисления. В MessageBox показываются...

Отмена действий пользователя
Товарищи, нужна помощь. Тут такое дело, один умник наюхевертил в программе УТ 10. Через групповую обработку справочников поставил пометку...

Мгновенная отмена действий
Всем привет. Могу ли я отменить анимацию блока span при клике на кнопку div? Вот здесь подготовлен исходник. Спасибо! Добавлено...

Многократная отмена действий
Приветствую всех. Этот код делает отмену последнего действия. При его нажатии происходит отмена изменения. Если выбрать меню отмены...

Отмена действий макросом
Подскажите что я нетак делаю выдает ошибку 424 object required при попытки отменить действие макроса Public uc As Long Sub...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
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. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru