2009-09-17 2 views
3

У меня есть диалог со столбцом справа, заполненный кнопками. Диалог создается с помощью Windows Forms. У меня есть макет по следующей ссылке: original dialog (я бы включил его, но, по-видимому, я не разрешено использовать теги изображений)Распространение элементов управления для заполнения пробела при изменении диалогового окна

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

Я пробовал размещать кнопки в FlowLayoutPanel, но они не увеличиваются по мере того, как диалог растягивается, я получаю только пробелы внизу У меня заканчиваются кнопки. Я также попробовал TableLayoutPanel и имел тот же результат, но я, возможно, неправильно использовал его. У кого-нибудь есть идеи, как я мог бы это сделать?

Спасибо заранее, Джереми

ответ

3

Для начала. Используйте TableLayoutPanel, установите свойство Anchor в верхнюю, нижнюю, левую и правую. При необходимости установите для строк и столбцов проценты. Я предлагаю, чтобы каждый элемент управления имел свою собственную ячейку. Обратите внимание, что каждый элемент управления в «ячейке» может иметь свойство Dock and Anchor по необходимости.

+0

Спасибо за информацию, она отлично работала. Однако один из них ... я не мог заставить TableLayoutPanel одновременно установить свойство Anchor для всех четырех точек и стиль Dock для заполнения. Установка всегда перезагружает другую, но это может быть побочным эффектом инструментального средства стороннего управления, в котором размещается TableLayoutPanel. Несмотря на это, когда я устанавливаю стиль Dock для TableLayoutPanel, а также его дочерние элементы управления, чтобы заполнить элементы управления, идеально растянутые по форме. Еще раз спасибо! –

+1

Да, якорь и док-станция являются эксклюзивными. Вы можете установить только один или другой. Если вы хотите обоим, используйте панель для «привязки», а затем «прикрепите» свой элемент управления в панели. – AMissico

0

Вы можете сделать это с помощью TableLayoutPanel. Создайте столбец для кнопок, каждая из которых имеет собственную строку/ячейку в столбце. Установите каждую строку равным проценту высоты (если есть 10 кнопок, каждая строка будет 10%) и установите доску TableLayoutPanel в правой части экрана. Затем поместите кнопки в свои ряды и установите их на полную стыковку. Затем, когда диалог расширяется, TableLayoutPanel будет расширяться, чтобы заполнить всю правую сторону экрана, каждая строка будет корректироваться пропорционально, и каждая кнопка будет расширяться, чтобы соответствовать новому размеру строки.

Возможно, вам придется немного подкорректировать это в соответствии с вашими потребностями, особенно в том, как оно относится к другому содержимому в окне.

Смежные вопросы