|
Скрытие панелей на форме: как растянуть оставшиеся панели на свободное место | ☑ | ||
---|---|---|---|---|
0
Антиквар
24.06.14
✎
13:03
|
Всем привет!
Для простоты рассмотрим примитивный пример: на форме есть две панели: левая и правая, и между ними разделитель, чтобы пользователь мог менять ширину панелей. Требуется, чтобы левую панель можно было скрыть по кнопке, при этом чтобы правая панель растянулась на всю форму. Разделитель и правая панель привязаны к правой границе левой панели. Если убрать видимость левой панели, то естественно ничего не сдвинется, т.к. панель она останется на форме. Делаю так: ЭлементыФормы.ПанельЛевая.Свертка = РежимСверткиЭлементаУправления.Лево; ЭлементыФормы.Разделитель1.Свертка = РежимСверткиЭлементаУправления.Лево; Не помогает. Добавляю программную переустановку привязок: ЭлементыФормы.ПанельПравая.УстановитьПривязку(ГраницаЭлементаУправления.Лево, ЭлементыФормы.Разделитель1, ГраницаЭлементаУправления.Право); Тоже не помогает, ничего не растягивается. Что ещё нужно сделать? Или вообще, как правильно это реализовывается? |
|||
1
Антиквар
24.06.14
✎
15:36
|
up
|
|||
2
vasbur
24.06.14
✎
15:41
|
по моему опыту - либо перетаскивание, либо скрытие.
Одновременно и то и се у меня тоже не получалось настроить. |
|||
3
sirsp
24.06.14
✎
15:47
|
(0) Свертка:
1. Сбросить привязку левой панели; 2. Переустановить привязку разделителя к левой панели; 3. Свернуть левую панель; 4. Свернуть разделитель. Развертка: 1. Развернуть разделитель; 2. Развернуть левую панель; 3. Восстановить привязки. |
|||
4
Антиквар
24.06.14
✎
16:13
|
(3) Что-то не получается, может не так понял Вас.
По свертке пункт 1, действительно нужно сбросить привязку левой панели, или может нужно сбросить привязку других элементов к левой панели? |
|||
5
sirsp
24.06.14
✎
16:23
|
(4) Значит начальные привязки кривые. Должно быть:
Левая панель Левая сторона к форме, правая сторона к левой стороне разделителя. Разделитель Правая сторона к левой стороне разделителя. Правая панель Левая сторона к правой стороне разделителя, правая сторона к форме. + Сворачивать только влево. Да, достаточно сбросить правую привязку левой панели. |
|||
6
Антиквар
24.06.14
✎
16:43
|
(5) Проверил, мои привязки такие же.
Вот только у разделителя непонятно к чему привязывать левую сторону. Я привязал к левой стороне левой панели. У Вас не написано куда надо. В остальном всё также. По нажатию кнопки левая панель с разделителем исчезают, а левая сторона правой панели еле заметно сдвигается влево, а надо чтобы на всю форму. |
|||
7
Антиквар
24.06.14
✎
16:48
|
Вот код по нажатию кнопки:
ЭлементыФормы.ПанельЛевая.УстановитьПривязку(ГраницаЭлементаУправления.Право); ЭлементыФормы.Разделитель1.УстановитьПривязку(ГраницаЭлементаУправления.Лево, ЭлементыФормы.ПанельЛевая, ГраницаЭлементаУправления.Лево); ЭлементыФормы.Разделитель1.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭлементыФормы.Разделитель1, ГраницаЭлементаУправления.Лево); ЭлементыФормы.ПанельЛевая.Свертка = РежимСверткиЭлементаУправления.Лево; ЭлементыФормы.Разделитель1.Свертка = РежимСверткиЭлементаУправления.Лево; |
|||
8
sirsp
24.06.14
✎
16:58
|
||||
9
sirsp
24.06.14
✎
17:02
|
(7) 1. Разделитель надо привязывать к _правой_ стороне левой панели.
2. Правую привязку трогать не нужно. Короче см. обработку. А что касается привязки левой стороны разделителя, то я ее никуда не привязывал. Но по желанию можно привязать куда угодно, но к форме! |
|||
10
Антиквар
24.06.14
✎
17:21
|
(9) Спасибо большое за обработку. Видимо в привязке разделителя у меня косяк. К правой стороне левой панели и мне казалось логичнее, но выдавало ошибку, что привязки установлены неверно.
Ещё раз спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |