Страница: 1 |
Страница: 1 |
Вопрос: длинные элементы в ComboBox
Добавлено: 12.10.06 11:48
Автор вопроса: Riddick
Здравствуйте, вопрос в следующем:
Если длина строки текста в ComboBox превышает ширину ComboBox и нет возможност расширить его,то каким образом возможно реализовать возможность полного просмотра строки.
Нашел как похожую проблему решить с помощью ToolTipText, но для List: http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/WindowsAPI/Control/123.mspx
Но для ComboBox нет события MouseMove :(
Если подскажите в какое событие засунуть и если такой вариант возможен для ComboBox буду очень признателен.
Или подскажите свой вариант.
Или дайте ссылочку где можно прочитать решение данного вопроса.
Заранее благодарен.
PS. можно конечно каждый раз расширять ширину ComboBox по длине самой длинной строки, после выбора возвращать исходный размер.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #1
Добавлено: 12.10.06 13:30
При получении фокуса комбобоксом создавай прилепленный снизу к нему ЛистБокс, в который переписывай эл-ты из комбобокса.
В самом кобобоксе кол-во отображаемых элементов установи 0. (не помню точно, где-то видел как).
При потере фокуса листбоксом ЛистИндекс КОМБОБОКСА устанавливай равному ЛистИндексу ЛИСТБОКСА, а сам листбокс скрывай.
Все. ЛистБокс обрабатывать ты умеешь.
Номер ответа: 2
Автор ответа:
Riddick
Вопросов: 8
Ответов: 8
Профиль | | #2
Добавлено: 13.10.06 15:50
Спасибо за совет. Надо бы попробывать.
Я сделал так: Во время получения фокуса ComboBox изменяю его ширину, а при выборе элемента ComboBox на Click возвращаю старый размер. Все бы было хорошо, но при изменении ширины список увеличивается, но при этом он сворачивается, и это очень заметно и не удобно Если есть мысли и если это возможно, то подскажите, как после изменения ширишы разварачивать список автоматически.
Номер ответа: 3
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #3
Добавлено: 13.10.06 17:11
Стандартный комбобокс этого не умеет
Но это умеет комбобокс из Forms2.0 (не FrameWork) На панели с элементами управления правой клавишей - у тебя появится меню, там выбираешь "Components", появится список эл-тов управления, крутишь его и находишь "Microsoft Forms 2.0 Object Library". Выбираешь его и у тебя появится куча эл-тов управления, в их числе и комбобокс. Замечательный контрол, но зараза не всегда удачно переносится с машины на машину, долботня. У него есть метод типа Expand или DropDownList, скорее второе.