|
|
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Есть такая проблемка: в проекте ADP использую mscomctl SP6. и обнаружилось вот что: если в любой листвью (и только в него) кликнуть (передать), то текстовые поля формы как бы блокируються..... выражается это так - выделить текст, удалить, вставить можно а ввести с клавы нет!!!! Пользователи уже звереют - каждый раз приходится перезапускать форму. Посоветуйте как избавиться 1.Искать более свежую mscomctl ? 2. ???? ЗЫ ListView используется в режиме Report ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 11:14:53 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Почему же только в ListView? У меня тот же эффект наблюдается и с DTPicker из Microsoft Windows Common Controls-2 6.0 (SP4). Честно скажу - пока не имею даже внятного объяснения происходящему. Приходится ставить заплатку - поскольку дефект проявляется только в случае, когда ActiveX control имеет фокус, в нужный момент принудительно программно увожу с него этот фокус на какой-либо другой элемент управления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:00:26 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Ясно. судя по отзывам я подумал что это лично проблема у меня в проекте. DT Picker я юзаю не так активно, а вот ListView по самое не хочу. А что за заплатки, пожалуйста поподробнее...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:59:31 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
проверьте, есть ли в свойствах проекта явная ссылка на MSCOMCTL.OCX если нет - добавьте. Должно помочь. кроме того, vbAccelerator при некторых комбинациях ось(XP)-эксплорер рекомендует принудительно проводить такую инициализацию Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Private Declare Sub InitCommonControls Lib "comctl32.dll" () libManipulator = LoadLibrary("Shell32.dll") InitCommonControls ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:59:33 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Попробовал приведенный код - непомогло. Использовал его отдельно в модуле и вызывал до и после возникновения проблемы. Ссылка на mscomctl.ocx ес-но присутствует :-))) Че делать-то - не вижу даже направления для копания. Бросать и переписывать проект - нереально. столько строил и ..... на ровном месте гиммор. А есть ли SP7, 8 версия mscomctl ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 19:09:56 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Тимур Рахимов тебе готовое лекарство выписал из собственной практики, а ты говоришь, что направления не видишь... :)) попробуй пример, выложить попроще, где это проявляется - на одну- две формы. Может что и увидится (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 21:05:38 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Для "Victosha" и всех желающих поточить (или обломать) зубы об этот камешек. Приложен минимальный пример, демонстрирующий эту ошибку - файл MDB, созданный в Access 2000 SP3, для его работы требуется наличие зарегистрированной библиотеки Microsoft Windows Common Controls-2 (MSCOMCT2.OCX). При старте базы данных открывается несвязанная Форма1, в которой содержится подформа Форма2. Кода никакого нет, обе формы "легкие" (даже модули у них отсутствуют). В подформе два элемента управления - DTPicker и обычный textbox (Поле2), в главной форме - только один textbox (Поле1). Сразу после старта фокус находится в элементе управления ActiveX подформы. Как воспроизвести ошибку: 1) При помощи мыши переносим фокус в Поле1 главной формы (в подформе фокус остаётся на ActiveX). Пробуем ввести в него текст. Видим, что нажатия клавиш игнорируются. 2) Мышью делаем активным Поле2 в подформе (переносим туда фокус). 3) Вновь щёлкаем мышью в Поле1 главной формы (фокус в подформе при этом остаётся в Поле2). Пробуем ввести в него текст. Видим, что теперь это получается вполне успешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 01:42:00 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Самое интересное, что в Access XP SP3, все работает прекрасно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 02:22:39 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Да, я забыл упомянуть, что приведённый тест на Access 2002 (любом, даже без сервис-паков) ошибку не обнаруживает. Так что, по-видимому, проблема актуальна только для Access 2000 (и, может быть, для Access 97). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 02:38:12 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Ага, на 2000 есть такая бага. MSDNACC97: Keyboard Does Not Respond When TreeView Control Has Focus SYMPTOMS You are unable to type data into a text box or combo box on a tab control that contains a TreeView control on another page. However, you are able to set the value of the text box or combo box with a macro or with Visual Basic for Applications code. This behavior only applies where the TreeView control is on a sub-form and that sub-form is on the Tab control. NOTE: In addition to the TreeView control, the symptoms discussed in this article have also been reported for the ListView ActiveX control. CAUSE The TreeView control has the focus. RESOLUTION If possible, in Design view, place the TreeView control directly onto the Tab control page. If the TreeView control must be on a subform, move the focus by clicking a control on the page that contains the TreeView control, or close and reopen the form. STATUS Microsoft has confirmed this to be a problem in Microsoft Access 97. MSDN ACC2000: The Keyboard Does Not Respond When an ActiveX Control Has Focus This article was previously published under Q210608 Moderate: Requires basic macro, coding, and interoperability skills. This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp). SYMPTOMS You are unable to type data into a text box or combo box on a tab control that contains a Microsoft TreeView or ListView ActiveX control on another page. This behavior occurs when all of the following conditions are true: The Microsoft TreeView or ListView ActiveX control is on a subform. The subform is on a tab control. The subform is on a different page of the tab control than the one with the text box or combo box. You clicked the TreeView ActiveX control to give it focus before switching pages on the tab control. NOTE: You can set the value of the text box or combo box with a macro or with Visual Basic for Applications code. CAUSE The Microsoft TreeView or ListView ActiveX control still has the focus. Even though another page on the tab control has been selected, and you have clicked the text box or combo box control, the ActiveX control retains focus. RESOLUTION To work around this problem, use any of the following methods. Method 1 Place the Microsoft TreeView or ListView ActiveX control directly onto the tab control, instead of placing it onto a subform first. Method 2 If the TreeView or ListView ActiveX control must be on a subform, remove the focus by clicking another non-ActiveX control on the same page as the TreeView or ListView ActiveX control. Method 3 Close and reopen the form, and then go directly to the text box or combo box that you want without clicking on the TreeView or ListView ActiveX control. STATUS Microsoft has confirmed that this is a problem in Microsoft Access 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 09:38:40 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Спасибо Всем, я четко понял проблему и благодаря Тимур Рахимов путь ее разрешения. 1. Модифицировать код 2. Менять ACCESS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 09:51:01 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Да, занятно. Даже почему-то жаль, что в 2002 работает. Фокус есть, контрол активный, text, value и прочее (клавиатурные события) работает. А лечит уй в данном случае, например, еще и размещение на основной форме дополнительного пикера и вход в него. Тема вокруг отсутствия потери фокуса на контроле при выходе из подформы. Что-то в таком случае не договаривает акцесс контролу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 10:40:46 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
Спасибо Senin Viktor за цитаты из MSDN. там все верно описано. У меня в проекте как раз ListView в подформе расположен.... Помучался я путем №2 предложенным от M$ - и вот что получилось чтобы уводить фокус c ListView нужно поймать момент потери фокусом формы, или ее деактивыацией, но как оказалось эти события для подформы не наступают.... То бишь подформа с ListView находящаяся на одной из вкладок при изменении вкладки этих событий не получила!!! Я обращаюсь к Тимур Рахимов, уважаемый, скажите пожалуйста что это за такие заплатки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 18:37:59 |
|
||
|
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
|
|||
|---|---|---|---|
|
#18+
squidчтобы уводить фокус c ListView нужно поймать момент потери фокусом формы, или ее деактивыацией, но как оказалось эти события для подформы не наступают... Ну разумеется, не наступают (в полном соответствии с документацией). Ловите событие Exit у соответствующего элемента управления типа "подчинённая форма" в главной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 22:27:01 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32815480&tid=1669890]: |
0ms |
get settings: |
6ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 325ms |

| 0 / 0 |
