|
Lena
|
|
Горизонтальная прокрутка в списке29.05.2007, 14:33. Показов 4669. Ответов 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
Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Горизонтальная прокрутка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|