|
Lena
|
|
Горизонтальная прокрутка в списке29.05.2007, 14:33. Показов 4649. Ответов 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
Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|