|
Lena
|
|
Горизонтальная прокрутка в списке29.05.2007, 14:33. Показов 4680. Ответов 15
Метки нет (Все метки)
Я пытаюсь изготовить базу данных в MS Access 97.
В форме из выпадающего списка надо выбрать значение. Проблема в том, что значение содержит более 200 символов и на экране не помещается. Вопрос. Как добавить горизонтальную прокрутку в список? Или, может быть, есть какие-то другие способы для просмотра длинных записей в списке? |
|
| 29.05.2007, 14:33 | |
|
Ответы с готовыми решениями:
15
Горизонтальная прокрутка в ListBox
Горизонтальная прокрутка |
|
Spirit
|
|
| 29.05.2007, 16:14 | |
|
А разве нельзя сделать поле со списком чуть повыше, чтобы помещалось 2 строки, например !?
|
|
|
Lena
|
|
| 29.05.2007, 16:28 | |
|
Можно. Только это не поможет
![]() В поле со списком может помещаться сколько угодно строк, но что делать, если одна строка списка содержит 200 символов? Т.е. запись из таблицы содержит 200 символов, а список использует таблицу в качестве источника строк. |
|
|
Mavr
|
|
| 29.05.2007, 18:58 | |
|
Горизонтальный скролинг добавить нельзя, можно только определить ширину выпадающей части, вот только если у тебя там не будет длинных строк выпадающая часть комбобокса все равно будет такой какой ты ее задала.
|
|
|
Lena
|
|
| 29.05.2007, 19:30 | |
|
А есть какие-то другие пути, кроме горизонтальной прокрутки? Например, как сделать, чтобы при наведении курсора на пункт списка, не помещающийся в экран, всплывала подсказка (как в стандартном Windows Help?
|
|
|
VladK
|
|
| 29.05.2007, 20:32 | |
|
Lena,
Y vam prishlyu vse kodi'. Nughen vash e-mail. Vlad |
|
|
VladK
|
||||||||||||||||
| 29.05.2007, 20:57 | ||||||||||||||||
|
Lena, ya uvidel vash e-mail. Prishlyu cherez neskol'ko chasov.
Gorizontal'naya prokrutka vpolne vozmoghna. Meghdu tem, vot sovet kak sdelat' podskazku na vi'branni' e'lement spiska: 1. Preghde chem zapolnyat' spisok combo boxa, prodeklariruyte svoy tip, sostoyashiy iz dvuh strokovi'h peremenni'x. Zatem, prodeklariruyte massiv e'togo svoego tipa. Zatem, prisvaivaite pervomu polyu massiva elementi' spiska, kotori'y dolghen bi't' v combo boxe, a vtoromu e'lementu spiska - poyasnenia k sootvetstvuyuschemu e'lementu. Nakonetz, v sobi'tii Click vashego kombo boxa prisvaivate svoystvu ToolTip sootvetstvuyuschiie znacheniya: V module:
Psevdo kod, populiruyuschiy vash massiv strokami, poyduschimi v kombo box i v poyasnitel'nuyu chast'.
|
||||||||||||||||
|
Mavr
|
||||||
| 30.05.2007, 07:00 | ||||||
|
VladK речь идет об комбобоксе в Access'е, а не про VB-ый комбобокс, у акцесного комбобокса нет метода AddItem и вместо свойства ToolTipText у него есть свойство ControlTipText, а что бы при наведении мыши на комбобокс появлялся ToolTipText со значением в комбобоксе:
Прочитал еще раз твой вопрос ты хотела, что бы при наведении на любой пункт выпадающего списка появлялся ToolTipText, к сожалению нет возможности отследить какой элемент сейчас в выпадающей части списка активен. |
||||||
|
Lena
|
|
| 30.05.2007, 12:34 | |
|
VladK, большое спасибо за коды. Мне они очень пригодятся, когда такую же задачу придется решать в VB.
Но, в данный момент, речь идет об уже практически готовой базе под Access. Mavr, я правильно поняла, что в Access для comboBox и для listBox идею со всплывающей подсказкой реализовать не удастся? Может, есть еще какие-то идеи что можно сделать, чтобы прочитать длинные строки в списке? |
|
|
Mavr
|
|
| 30.05.2007, 12:58 | |
|
В ListBox'е как раз таки есть горизонтальная прокрутка, она включается автоматом если ширина столбца не входит в отображаемую зону, только вот если листбокс многостолбцовый, то реально горизонтальный скролинг позволит просмотреть полностью последний столбец (если у него ширина задана очень большой), и при перемещении по элементам в листбоксе можно выбираемую строку отображать в ToolTipText'е, т.к. в листбоксе при каждом перемещении по строкам, генерятся события BeforeUpdate, AfterUpdate и сам листбокс принимает значение из выбранной строки.
Другое дело комбобокс, он не имеет горизонтального скролинга и перемещение по строкам в выпадающей части комбобокса ни как не отследить, события генерятся только при выборе определенной строки в в списке комбобокса. Поэтому и нельзя менять ToolTipText у комбобокса при перемещении по строкам в его списке. Можно только при наведении мышки на комбобокс в тултипе отразить текущее выбранное значение, и если там длиннаяя строка то она отразится в тултипе (код см. выше). Можешь попробывать использовать какой - нибудь ActiveX'ый ComboBox. Больше ни чего тебе посоветовать пока не могу, если придет что-нибудь на ум то напишу. |
|
|
Lena
|
|
| 30.05.2007, 13:52 | |
|
В ListBox если число столбцов = 1 и ширина столбца больше ширины списка, то горизонтальной прокрутки нет. Если поставить число столбцов = 2, тогда горизонтальная прокрутка появляется, но запись все равно не читается, а прокручивается к следующему столбцу. Такая вот фигня получается.
|
|
|
0 / 0 / 0
Регистрация: 09.05.2007
Сообщений: 130
|
|
| 30.05.2007, 19:13 | |
|
Lena!
Reschenije 'ne krasivoje', no esli v ka4estve vremennogo varianta dlja raboty/otladki - to vpolne moscho: Pomeschajte tekuscheje za4enije Combobox v ego sche svojstvo 'ControlTipText' togga moschno budet smotret' text kak podskazku. T.e. vybirajete zna4enije iz spiska i snova navodite myschku na ComBox. Ponjatno, 4 to dlja pol'zovatekja ne godit'sja, no sato deschevo i serdito. P.S. No esli ComboBox u vas v 'Fram'e', to etot fokus tak prosto ne prohodit.
0
|
|
|
Mavr
|
|
| 31.05.2007, 05:52 | |
|
Ну дык код, который я в начале писал это и делает.
pakhomov_a, ты мне как-то присылал по мылу вопрос по поводу отлатки программы, я извеняюсь, но я твое письмо нечаяно грохнул, и у меня не осталось твоего адреса, на Relib.com ты тоже не указал свой почтовый адрес, но ответ я написал, осталось только адрес вставить, поэтому как только ты мне пришлешь свой адрес, я сразу тебе отправлю ответ. |
|
|
0 / 0 / 0
Регистрация: 03.05.2007
Сообщений: 7
|
||||||||||||||||
| 31.05.2007, 07:35 | ||||||||||||||||
|
Мне кажется должно помочь вот это:
Из рассылки 'VB Хитрости - советы и ответы на вопросы' Определение, какая item находится под курсором мышки в листбоксе Часто, бывает нужда в определении элемента, над которым пользователь держит мышку. Как наиболее тривиальное применение - вывод дополнительной информации или подсказки в статус бар , причем контекстно зависимой от элемента. Или , например показ текущего элемента в другом листбоксе. Бэйсик сам не дает нам такой функциональности , но к счастью , используя API функцию SendMessage() и константу LB_ITEMFROMPOINT такая возможность у нас появляется. Обьявить SendMessage() можно прямо на форме
Обьявляем эту константу там же
Это можно сделать так: ((YPosition * 65536) + XPosition)) Ну, и наконец, SendMessage() может возвращать вам два типа значений. Если функция определяет, что указатель мыши находится над листбоксом - то она вернет номер индекса листбокса. Если мышка в другом месте , то функция вернет сзначение равного старшему слову координаты плюс 65537. Собственно достаточно будет проверить на соотвествие возвращаемый индекс. вряд ли кто то будет держать в листбоксе столько элементов. Итак, нижеследующий код показывает как это все написать.
0
|
||||||||||||||||
|
Mavr
|
|
| 31.05.2007, 07:46 | |
|
Это для листбокса, а для выпадающего списка в комбобоксе это работать будет?
Если будет, то все равно этот код для комбобокса не куда будет вставить, т.к. когда мышкой движешь по выпадающей части комбобокса, MouseMove не возникает. |
|
|
0 / 0 / 0
Регистрация: 03.05.2007
Сообщений: 7
|
|
| 01.06.2007, 08:30 | |
|
2Mavr:
Combo с точки зрения Windows такое же окно как и List, только другого класса, и ему также можно послать сообщение, только свое. То есть копать нужно в этом направлении. С другой стороны, интерфейс с List-ом не хуже, чем с Combo. Но если 'только Combo' и ничего не находится, то лучше по-моему обойти эту проблему (ну не писать же в самом деле свой Combo). Например, при загрузке Combo ограничить длину строки, более длинные заменить аббревиатурами, показать расшифровку аббревиатур отдельно. На мой взляд лучший вариант - использовать List (код примера отлично работает) и сбрасывать значение под курсором в отдельное поле или в статусную строку.
0
|
|
| 01.06.2007, 08:30 | |
|
Помогаю со студенческими работами здесь
16
Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|