Элемент управления DateTime ValueChanged, C # - PullRequest
2 голосов
/ 05 января 2011

У меня есть SQL-запрос , который запускается, когда кто-то изменяет дату в DateTime Control в моей форме Windows.

Запрос (в настоящее время) запускается всякий раз, когда DateTime Control 'ValueChanged свойство срабатывает.

Это плохо работает, потому что:

  1. Если кто-то пытается использовать функцию прокрутки элемента управления, чтобы перейти от января к прошломуСентябрь, событие ValueChanged запускается один раз за каждый месяц (замедляет работу графического интерфейса и делает ненужные вызовы SQL).

  2. Если кто-то обновляет дату вручную, введя значение в текстовое полесвойство ValueChanged не срабатывает.

Я не могу использовать свойство Controller CloseUp для решения # 1 , потому что тогда # 2 не сработает.

Свойство TextChanged было бы неплохо, но DateTime Control не раскрывает одно из этих свойств.

Как лучше всего определить, когда моя дата действительно был изменен?(Я также не добавляю таймер, который опрашивает форму)

Development Environment: VS2008
Framework: 3.5
Language: C#
Target: Windows PC

1 Ответ

1 голос
/ 05 января 2011

(я также не добавляю таймер, который опрашивает форму)

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

Удаленным вторым вариантом может быть асинхронный запрос, который можно отменить.Как SqlCommand.BeginExecuteXxxx ().Хорошо работает для пользовательского интерфейса, не очень хорошо для загрузки сервера dbase.

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