| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Docking контролов |
| Автор: Skywalker 9.1.2006, 03:43 |
| Есть много кнопок и есть listbox. При нажатии на кнопку листбокс появляется под ней, а все остальные кнопки должны сместится вниз под листбокс. Как можно это реализовать без координат? |
| Автор: mr.DUDA 9.1.2006, 08:48 |
| Без координат далеко не уедешь. Но можно придумать следующее: - кидаем на форму 3 панели, верхняя Dock=Top, средняя Dock=Top, нижняя Dock=Fill - на верхнюю панель кидаем кнопку, показывающую листбокс, ставим высоту верхней панели строго по высоте кнопки - на среднюю панель кидаем листбокс, ставим Dock=Fill, высота панели должна соответствовать желаемой высоте листбокса в видимом режиме - на нижней панели размещаем все остальные кнопки Теперь, при старте программы, ставим нулевую высоту у средней панели. В результате она полностью скроется, а нижняя панель (с остальными кнопками) займёт всё доступное место. Далее, при нажатии на верхнюю кнопку, ставим ненулевой размер у средней панели - листбокс станет видимым, а остальные кнопки "съедут" вниз, под листбокс. ИМХО, чем такие "извраты", лучше чуть дольше посидеть и подобрать координаты для контролов в каждом из двух режимов. |