Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423

Scroll в юзерформе

28.05.2013, 22:53. Показов 2317. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот, пытаюсь освоить VBA. Надеюсь, господа, на вашу помощь.)

Есть форма. Вставил в нее комбобокс и заполнил списком.
Форма открывается, список комбобокса тоже, даже ползунок у него имеется!)
Как добавить возможность прокрутки списка не только ползунком, но и колесом прокрутки мыши?
Заранее благодарю!)

ЗЫ Большущая просьба! Поскольку я только начинаю осваивать VBA, хотелось бы увидеть не только код, но и подробное его комментирование, а также (ну уж совсем меня простите!)) куда и как его вставлять!(((
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2013, 22:53
Ответы с готовыми решениями:

При scroll'e не пролистываются объекты, имеющие компонент scroll rect
Есть главная панель со scroll rect'ом для горизонтального scroll'а и event trigger'ом (для проверки пролистывания) с дочерними объектами,...

OFF scroll на body > ON scroll children
Добрый день. Возник вопрос как сделать так чтоб при на ведении на элемент событие scroll работало в этом элементе, и не срабатывало на...

About Scroll
Помогите ,короче Скролл при переходе на другой блок исчезает вместе с блоком.При нажатии F12 скролл с блоком появляются..Кто шарит помогите.

11
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
29.05.2013, 01:08
Должно крутить. Офис 2003 используешь? тогда жми сюда
0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
29.05.2013, 01:28  [ТС]
Цитата Сообщение от second3 Посмотреть сообщение
Офис 2003 используешь?
Никак нет! 2010.

Добавлено через 3 минуты
Да и смотрю народ по этой теме с бубном скачет!(((
Пытаюсь повторять коды - ничего не выходит!(
Очевидно из-за отсутствия:

Цитата Сообщение от Bazaroff Посмотреть сообщение
не только код, но и подробное его комментирование, а также (ну уж совсем меня простите!)) куда и как его вставлять!(((
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
29.05.2013, 18:40
По скроллу здесь хорошо написано и работает: Форум MSDN

Но! У некоторых объектов (типа TextBox) нет свойства ScrollTop, для них надо реализовывать PostMessage (см. форум).

---------------------
Для ComboBox надо менять значение ListIndex

Добавлено через 8 минут
Поправочка: Форум этот же, но запись от Wednesday, August 01, 2012 2:50 PM
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
29.05.2013, 21:32  [ТС]
Hedge-Hog, несколько вопросов.

1. В представленном примере необходимо использовать два различных кода: один для юзерформы и другой для модуля.
Поскольку я даже не начинающий, а, скорее, кандидат в начинающие, что есть этот модуль?
Мне необходимо просто создать модуль в проекте, содержащем мою юзерформу и поместить в этот проект только представленный код?
Или это некоторый модуль который должен уже быть и нечто уже содержать?
2. Если вы (ты?) знакомы с представленными кодами. Содержат ли они имена? Я что-то не могу разобраться.( А то получится что у них значится как User form, я должен записать, например, my form. (Имя моей формы).
3. Ну уж совсем негодяйский вопрос.( Коммент бы мне к каждой строчке...(((
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
29.05.2013, 22:22
1) Да, код нужно писать в двух местах. Основной код - в любом модуле, установка и снятие hook'а (перехватчика события) - в коде формы (правый клик на форме - открыть код)
2) Знаком, немного докрутил код - поддерживает несколько видов контролов, но до ума, как водится, так и не довёл. Код будет под рукой только завтра утром.
3) К каждой строчке - не обещаю.
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
29.05.2013, 23:00  [ТС]
Hedge-Hog, большущее спасибо!

По-ходу уже немного и сам разобрался.
Методом тыка! Вставил от балды модуль и внес в него предложенный код. И второй, немного поплясав с бубном, ввел в код юзерформы.
Все работает в лучшем виде!
Эх! Знать бы что эти куплеты означают! А то не учение, а паразитизм какой-то!)))

Небольшая деталь неудовлетворенности все же имеется.(
Дело в том, что я предполагаю выбирать позицию из списка при помощи ПКМ. До этого момента "главное" поле списка должно оставаться пустым.
Предложенный же код реализует следующее. "Главное" поле остается пустым до тех пор, пока я не дотронулся до скрола. Как только я начинаю крутить скрол - так сразу, вслед за подсветкой, в главном поле начинают меняться значения.
Как-то не ништяк выглядит.(((

Можно ли этот трабл исправить?
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
30.05.2013, 09:15
Можно всё )
Можно попробовать вешать hook только после нажатия ПКМ.
Можно вешать hook на контрол, а контрол скрывать до определённого момента/события
Нужна конкретная постановка задачи Из описания не очень понятно...
Вложения
Тип файла: zip ScrollHook.zip (30.2 Кб, 38 просмотров)
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
30.05.2013, 19:02  [ТС]
Спасибо!

Цитата Сообщение от Hedge-Hog Посмотреть сообщение
hook
Что это есть? Это и есть функция колеса прокрутки мыши?

Цитата Сообщение от Hedge-Hog Посмотреть сообщение
конкретная постановка задачи
Визуально стандартный разворачивающийся список представляет собой некоторое поле, в котором может иметься заранее некоторое значение по-умолчанию. Справа от этого поля имеется стрелка, которая, собственно, и разворачивает список. Мы начинаем при помощи колеса мыши прокручивать список. Обнаружив в нем необходимое значение мы его выбираем щелчком ЛКМ (тут пардон: в предыдущем посте я опечатался "ПКМ"). После этого в изначальном поле появляется выбранное нами значение.
Вот это самое я и хотел бы реализовать.
Сейчас это работает немного иначе. Посмотрите ваш ComboBox1. Разверните список и прокручивайте его колесом мыши. Видите? Вслед за движением подсветки меняются значения в верхнем поле.
Мне же нужно, чтобы в поле все это время оставалось значение, которое я выбрал по-умолчанию (значение по-умолчанию я уже реализовал). И лишь только щелчком ЛКМ по выбранному значению, значение в поле должно поменяться.
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
31.05.2013, 00:22
hook - это обработчик некоего события в системе (мышь, клавиатура, системные события). В системе одновременно "висит" много hook'ов каждого вида. При наступления события, касающегося мыши, обрабатываются все "мышиные" hook'и и все связанные процедуры.

Подробнее тут Документация MSDN (вообще рекомендую на MSDN почаще заглядывать. Hook'и - это уже не "начинающий"

Я бы сделал невидимый Textbox (или несколько) и хранил в нём значение по-умолчанию или предыдущее значение Listbox'а. И чуть поигрался с событиями самого Listbox'а (click, exit, mousemove, change, keyup, keydown). Надо поиграться

Можно вокруг Listbox'а сделать некую область, при выходе на которую (mousemove этой области) значение в Listbox'е восстанавливается из скрытого Textbox'а.
0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
31.05.2013, 00:39  [ТС]
Hedge-Hog, значение по-умолчанию я реализовал так: непосредственно в юзерформе, в комбобокс, по-тупому вписал это значение. Это меня вполне устраивает.
Вот чтобы они не прыгали/не менялись в поле при прокрутке списка мышью - это меня интересует.
ЗЫ Вот при использовании скрул-бара (ползунка) этого не происходит. Надо бы, чтоб и с колесом мыши было то же самое.

Добавлено через 2 минуты
Цитата Сообщение от Hedge-Hog Посмотреть сообщение
Документация MSDN
Ох, не могу похвастаться знанием аглицкого... переводчик гугл - это ж машина. Напереводит, что вообще ничего не поймешь.(
0
81 / 18 / 1
Регистрация: 22.05.2013
Сообщений: 32
31.05.2013, 09:09
Слышал, что можно изменить поведение стандартных элементов управления в VBA. Но не видел. У меня для подобных вещей скилл маловат Может ещё кто подскажет.
Лучше не мудрить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2013, 09:09
Помогаю со студенческими работами здесь

Scroll up
всё работает за исключением одного, почему-то когда обновишь страницу и находишься наверху самом появляется кнопка? <a...

Scroll в scroll
Всем привет :) У меня вот така проблема: <div class="1"> <div class = "2"> </div> </div> В обоих дивах у меня...

событие .on('scroll',
$('#diolog').on('scroll', '#history_message', function() { alert(); }); почему не срабатывает событие скрола ...

Scroll в RichTextBox
Здравствуйте! У меня такая проблема: необходимо в RichTextBox впихнуть картинку, но так, чтобы она не обрезалась под размер...

Scroll в datagrid
Вертикальный скроллбар появляется автоматически, если размер записей превышает размер грида. Как можно настроить прокрутку, чтобы можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru