Как отследить, если пользователь ввел / изменил что-то в графическом интерфейсе WinForms, чтобы предупредить пользователя о несохраненных изменениях? - PullRequest
1 голос
/ 27 ноября 2011

У меня есть простой WinForms GUI с несколькими TextBox es, CheckBox es и RadioButton s, чтобы пользователь мог вводить / изменять данные. Все загружается / сохраняется из базы данных SQL Server. Как предупредить пользователя, когда он хочет закрыть графический интерфейс? Я запрашиваю SQL, чтобы получить данные и сравнить их с тем, что есть в GUI, и если есть какие-либо различия, я просто предупреждаю пользователя? Или есть лучший способ? Также возможно, что в течение этого времени у пользователя было окно, в которое кто-то заходил и что-то изменял с другого компьютера, и данные SQL отличались бы от тех, которые изначально загружались в WinForms.

1 Ответ

3 голосов
/ 27 ноября 2011

Относительно локальных изменений: Сохраняйте локальный флаг, установленный в true, при любых изменениях общего сообщения. Вы можете иметь словарь, если хотите отслеживать конкретные изменения.

Чтобы другие пользователи не могли перезаписывать данные, вы можете использовать блокировку и запретить другим пользователям открывать эту запись или разрешать им открывать только для чтения.

Вы можете использовать отметку времени для этой записи и проверить, изменилась ли она с момента последнего чтения, а затем предупредить пользователя, что данные больше не совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...