powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
15 сообщений из 15, страница 1 из 1
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32813935
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая проблемка:
в проекте ADP использую mscomctl SP6. и обнаружилось вот что: если в любой листвью (и только в него) кликнуть (передать), то текстовые поля формы как бы блокируються..... выражается это так - выделить текст, удалить, вставить можно а ввести с клавы нет!!!!
Пользователи уже звереют - каждый раз приходится перезапускать форму.
Посоветуйте как избавиться

1.Искать более свежую mscomctl ?
2. ????


ЗЫ ListView используется в режиме Report
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32814942
Почему же только в ListView? У меня тот же эффект наблюдается и с DTPicker из Microsoft Windows Common Controls-2 6.0 (SP4).

Честно скажу - пока не имею даже внятного объяснения происходящему. Приходится ставить заплатку - поскольку дефект проявляется только в случае, когда ActiveX control имеет фокус, в нужный момент принудительно программно увожу с него этот фокус на какой-либо другой элемент управления.
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815129
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно. судя по отзывам я подумал что это лично проблема у меня в проекте.
DT Picker я юзаю не так активно, а вот ListView по самое не хочу.

А что за заплатки, пожалуйста поподробнее......
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815130
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверьте, есть ли в свойствах проекта явная ссылка на 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
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815242
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал приведенный код - непомогло. Использовал его отдельно в модуле и вызывал до и после возникновения проблемы.

Ссылка на mscomctl.ocx ес-но присутствует :-)))

Че делать-то - не вижу даже направления для копания. Бросать и переписывать проект - нереально. столько строил и ..... на ровном месте гиммор.

А есть ли SP7, 8 версия mscomctl ?
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815359
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тимур Рахимов тебе готовое лекарство выписал из собственной практики,
а ты говоришь, что направления не видишь...
:))

попробуй пример, выложить попроще, где это проявляется - на одну-
две формы. Может что и увидится


(с выражением лица)
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815480
Для "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). Пробуем ввести в него текст. Видим, что теперь это получается вполне успешно.
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815483
AndrewNico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Самое интересное, что в Access XP SP3, все работает прекрасно...
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815486
Да, я забыл упомянуть, что приведённый тест на Access 2002 (любом, даже без сервис-паков) ошибку не обнаруживает. Так что, по-видимому, проблема актуальна только для Access 2000 (и, может быть, для Access 97).
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815697
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, на 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.
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815729
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Всем, я четко понял проблему и благодаря Тимур Рахимов путь ее разрешения.
1. Модифицировать код
2. Менять ACCESS
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32815884
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, занятно. Даже почему-то жаль, что в 2002 работает.
Фокус есть, контрол активный, text, value и прочее (клавиатурные события) работает.
А лечит уй в данном случае, например, еще и размещение на основной форме
дополнительного пикера и вход в него.
Тема вокруг отсутствия потери фокуса на контроле при выходе из подформы.
Что-то в таком случае не договаривает акцесс контролу.
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32817376
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Senin Viktor за цитаты из MSDN. там все верно описано. У меня в проекте как раз ListView в подформе расположен....

Помучался я путем №2 предложенным от M$ - и вот что получилось
чтобы уводить фокус c ListView нужно поймать момент потери фокусом формы, или ее деактивыацией, но как оказалось эти события для подформы не наступают.... То бишь подформа с ListView находящаяся на одной из вкладок при изменении вкладки этих событий не получила!!!

Я обращаюсь к Тимур Рахимов, уважаемый, скажите пожалуйста что это за такие заплатки?
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32817560
squidчтобы уводить фокус c ListView нужно поймать момент потери фокусом формы, или ее деактивыацией, но как оказалось эти события для подформы не наступают...
Ну разумеется, не наступают (в полном соответствии с документацией). Ловите событие Exit у соответствующего элемента управления типа "подчинённая форма" в главной форме.
...
Рейтинг: 0 / 0
ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
    #32818098
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Событие отлавливается.
Я решил кое какие списки перевести на VSFlexGrid. и не глючит и возможностей поболе....
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP->mscomctl ->ListView при получении им фокуса в форме текстовые поля блокируются !!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]