|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
Всем доброго времени суток! Какой-то интересный случай, можно даже сказать медицинский... Из истории: есть два датапикера в формате времени: CustomFormat : HH:mm Format : 3 - dtpCustom Туда соответственно вводится начало и окончание временного промежутка. Когда пользователь вводит данные, надо округлять их до 5 минут в бОльшую сторону. Примеры ввел 15:52, округлить до 15:55 ввел 15:58, округлить до 16:00 и т.д. Реализация на событии Exit висит такой код: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
А теперь о проблеме. Все работает отлично, пока не начинаю вводить значение руками. Т.е. если поставить курсор на минуты, нажимать стрелки вверх/вниз на клавиатуре или мышой, то все хорошо. А если просто ввести цифры с клавиатуры, то при выходе из датапикера, значение затирается. При этом если поставить Breakpoint в коде и продебажить, то все опять работает... Проверила - больше нигде в коде не меняется значение датапикера. Что за неуловимый глюк, как его побороть? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2016, 16:01 |
|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
JustNick, Среда, так понимаю, VBA? События Exit не существует в VB6 для этого контрола. В Excel 2010 указанное у меня не проявляется... Ещё, я перешёл бы на работу с датами, без конвертации в строки, а то может подвести когда-нибудь. Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 20:45 |
|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
VSVLAD, спасибо за ответ, среда действительно VBA, точнее Excel 2010. Еще раз обращу внимание - проявляется, если вписать приведенный мною код в событие Exit и ввести минуты с клавиатуры цифрами. Тогда при выходе из объекта введенное значение заменяется тем, что было до ввода, т.е. старым. Не могу понять, в чем ошибка кода. ЗЫ. С вашим кодом та же история - стирается старое значение :( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2016, 16:39 |
|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
Если нет кода в событии Exit - нет ошибки, но и округления нет. Если есть код - значение затирается. Но что не так с кодом? Все же просто! Люди, помогите разобраться, а то приходится выкручиваться! Все эти выкрутасы некрасивы и неудобны :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2016, 16:43 |
|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
JustNickЛюди, помогите разобратьсяКупи уже лотерейный билетПриложите тестовый файл с проблемой ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2016, 21:58 |
|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
Shocker.Pro, спецом написано сложное приложение с красивой красной кнопкой. тестируйте на здоровье. Надеюсь, получится файлик приложить... Еще не приходилось ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 15:06 |
|
Стирается значение DTPicker (время) после редактирования с клавиатуры (не стрелками)
|
|||
---|---|---|---|
#18+
М-да. Exit срабатывает раньше, чем изменится Value. DoEvents перед чтением Value решает проблему Либо обрабатывать не Exit, а Change (на up-down это событие не срабатывает, так что ничего страшного наверное) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 21:20 |
|
|
start [/forum/moderation_log.php?user_name=maxzag]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 2506ms |
total: | 2653ms |
0 / 0 |