Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отобразить контрол поверх всего остального 
V
    Опции темы
Nope
Дата 18.7.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Есть форма, на ней находится контейнер, допустим Panel. Внутри Panel находится Listbox. В каждый момент времени Panel имеет заданный размер, Listbox в общем случае имеет размер больше, чем Panel. Следовательно, если размер Listbox больше, чем Panel, то Listbox целиком не отобразится. Вопрос: как это обойти? В результате хотелось бы, чтобы Listbox также как выпадающий список у Combobox, который отображается поверх всего.
PM MAIL   Вверх
amarenkov
Дата 18.7.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Так может разместить Листбокс не на панели а над нею?
PM MAIL ICQ   Вверх
Nope
Дата 18.7.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Нельзя. Есть на то свои условия, за рамки которых не выйти.
PM MAIL   Вверх
amarenkov
Дата 18.7.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Скорее всего ты этого не обойдешь в рамках поставленной задачи. При отрисовке компонент контейнер обрезает (или создает свою) область, в которую дочерние компоненты могут себя рисовать. Выйти за эту область не получится.

Что-то я себе не очень представляю, каким образом может понадобиться, чтобы компонент внутри конейнера был больше контейнера. Обычно в контейнер для того и засовывают, чтобы  ограничить или сгруппировать компоненты.
PM MAIL ICQ   Вверх
Nope
Дата 18.7.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Как оно себя ведет понятно. Но ведь комбобокс как то реализует данную задачу, возможно ее можно повторить. По крайней мере msdn явно не говорит об обратном.

Поверь на слово, есть необходимость, чтобы элемент, находясь внутри контейнера, имел возможность выйти за пределы "допустимых границ". Хоть это и звучит немного необычно.
PM MAIL   Вверх
amarenkov
Дата 18.7.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Комбобокс (также, как и хинт и подобные вещи) создают дополнительные дочерние окна. Которые поверх и висят. Можешь попробовать так сделать.
PM MAIL ICQ   Вверх
ZneP
Дата 18.7.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 15.7.2008
Где: Россия, Москва

Репутация: нет
Всего: нет



Можешь менять родителя листбокса.

Я так понимаю, ты хочешь, чтобы при нажатии на Panel (или на листбокс в этой панели) листбокс отображался целиком?
PM MAIL ICQ Skype   Вверх
Nope
Дата 18.7.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



грубо говоря нужно, чтобы  при получении панели фокуса листбокс отображался целиком. Но в общем случае, элементы находящиеся вне панели мне неизвестны.
PM MAIL   Вверх
amarenkov
Дата 21.7.2008, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



А если форма маленькая, то и за форму оно должно мочь вылазить ?
PM MAIL ICQ   Вверх
Nope
Дата 21.7.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



amarenkov, в это случае поведение должно быть стандартным.
PM MAIL   Вверх
amarenkov
Дата 21.7.2008, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Nope, тогда может тебе и впрямь, на событие Фокус искать самый корневой контейнер компонента и быстренько его выдергивать на него, делая поверх всех компонент. На событие ухода фокуса возвращать его обратно, на его место?
PM MAIL ICQ   Вверх
Compositum
Дата 21.7.2008, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Senior developer
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 430
Регистрация: 6.1.2008
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(Nope @ 18.7.2008,  12:48)
Есть форма, на ней находится контейнер, допустим Panel. Внутри Panel находится Listbox. В каждый момент времени Panel имеет заданный размер, Listbox в общем случае имеет размер больше, чем Panel. Следовательно, если размер Listbox больше, чем Panel, то Listbox целиком не отобразится. Вопрос: как это обойти? В результате хотелось бы, чтобы Listbox также как выпадающий список у Combobox, который отображается поверх всего.

а почему не прибиндить свойство ширины листбокса к ширине панели? или же закинуть обработку события изменения ширины панели: меняется ширина панели - автоматом меняется ширина листбокса. я делал нечто подобное - все нормально работало.
PM   Вверх
amarenkov
Дата 21.7.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Compositum, надо что бы размер листбокса был независим от панели. И он может быть больше. Я так понял.
PM MAIL ICQ   Вверх
Nope
Дата 22.7.2008, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Проблему решил созданием дочернего окна, в которое положил листбокс.

amarenkov,  спасибо за подсказку.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.