DTPicker

Программирование на Visual Basic for Applications
Евгений Д.
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 21.09.2004 (Вт) 17:32
Откуда: Москва

DTPicker

Сообщение Евгений Д. » 05.09.2006 (Вт) 22:15

В стандартном DTPicker из MSCOMCT2.OCX мне нужно отследить нажатие ESC в форме выбора даты (куда я попадаю по DropDown-кнопке), т.е. выход из этой формы без выбора даты. Выбираю я событие DTPicker_CloseUp и сталкиваюсь с тем, что по Esc, вываливатся сообщение: Code execution has been interrupted. Никакие мои ухищрения типа
Код: Выделить всё
Application.DisplayAlerts или Application.EnableCancelKey
не работают, да, вроде, и не должны, т.к. EnableCancelKey работает только в пределах одной программы и если я его ставлю в DTPicker_DropDown (а где еще?), то после выхода из него, значение EnableCancelKey сбрасывается.
Самое забавное, что когда нет обработчика DTPicker_CloseUp никаких прерываний по ESC не происходит: "нет человека - нет проблемы". А когда есть, - прерывание происходит на входе в DTPicker_CloseUp (по крайней мере по Debug я туда попадаю). Пользователь, конечно, сможет продолжить, нажав Continue, но скоро, наверняка, взвоет.
Кто-нибудь поборол этот глюк?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 06.09.2006 (Ср) 7:20

Код в студию, что тут еще можно сказать
Весь мир матрица, а мы в нем потоки байтов!

Евгений Д.
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 21.09.2004 (Вт) 17:32
Откуда: Москва

Сообщение Евгений Д. » 06.09.2006 (Ср) 12:05

А кода, собственно, и нет:
Код: Выделить всё
Private Sub DTP_ToDate_Change()

'  Call CheckIfAllIsReady
'
'  Application.EnableCancelKey = xlDisabled
'
'  tbox_MailTitle.Text = "Change" & Application.EnableCancelKey

End Sub


Private Sub DTP_ToDate_CloseUp()

'  Application.EnableCancelKey = xlInterrupt
'
'  tbox_MailTitle.Text = "CloseUp" & Application.EnableCancelKey
'
'  Call CheckIfAllIsReady

'  Application.EnableCancelKey = xlInterrupt
'
'  Application.StatusBar = DTP_ToDate

End Sub

Private Sub DTP_ToDate_DropDown()

'  Application.EnableCancelKey = xlDisabled
'
'  Application.EnableEvents = False
'
'  tbox_MailTitle.Text = "DropDown" & Application.EnableCancelKey

End Sub


Даже в таком виде (все отладочные и другие строчки - закоммментированы) эффект остается :cry: .

Евгений Д.
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 21.09.2004 (Вт) 17:32
Откуда: Москва

Сообщение Евгений Д. » 06.09.2006 (Ср) 12:23

Кстати, попутно, еще один вопрос по DTPicker. Раскрашивать выпадающий календарь можно, а вот как поменять хотя бы фон самого контрола? Как ни странно свойства BackColor нема!? Или все же есть потаенная тропа?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 56

    TopList