winforms отрегулировать элементы управления, чтобы поднять вертикально, когда другие невидимы - PullRequest
7 голосов
/ 17 февраля 2012

Я создал форму win c #,

На нем размещены несколько ярлыков и панель управления.

в некоторых случаях я устанавливал одну из меток и панель потока в видимый = ложь.

В результате я хочу, чтобы все метки под ними были подняты вверх - на данный момент есть пробел, где они были.

Кроме того, я бы хотел, чтобы панель Flowlayout увеличивалась и уменьшалась в зависимости от количества элементов, которые она имеет. на данный момент это просто размер, который я установил в конструкторе.

Пожалуйста, не могли бы вы помочь с этими 2 вопросами.

Спасибо

Ответы [ 3 ]

8 голосов
/ 17 февраля 2012

Если я вас правильно понял, я бы предложил использовать TableLayoutPane с двумя строками. Верхний ряд будет содержать закрепленную панель со всеми элементами управления, которые могут быть скрыты. Нижний ряд будет содержать закрепленную панель со всем остальным.

Установите для SizeType верхней строки значение AutoSize, а для нижней строки - 100%.

Если вы хотите скрыть элементы управления, установите для свойства Visible верхней панели значение false. Теперь, поскольку верхний ряд имеет Авторазмер, он сжимается до нуля, в результате чего нижний ряд «подпрыгивает» вверх.

1 голос
/ 17 февраля 2012

Первая проблема: вы можете использовать несколько простых панелей, чтобы разделить вашу форму, дать им свойство dock.fill.когда вы программно скрываете панель, другие панели будут заполнять оставшееся пустое пространство.

Вторая проблема: вы должны установить для свойства Autosize значение true.

1 голос
/ 17 февраля 2012

TableLayoutPanel выполняет нажатие.Может быть, вы можете использовать это, если нет лучшего ответа в следующий раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...