У вас есть много полей для комментариев, которые содержат один и тот же макет — текст комментария метки, имя автора, дату и т. д. Нет элемента управления, который размещает такие вещи, вам придется создать свой собственный элемент управления (Проект-> Добавить пользовательский элемент управления ). Этот элемент управления будет составным элементом управления, т. е. состоящим из других элементов управления. Вероятно, метка для каждого текстового поля (комментарий, автор, дата и т. д.), размещенная в нужных местах. Может быть, назовем его CommentBox или что-то в этом роде.
Теперь в основной форме у вас есть доступные элементы управления CommentBox, которые вы можете добавить в форму. Создайте панель для их размещения, чтобы у вас было много элементов управления CommentBox на панели, по одному для каждого комментария (или, возможно, добавьте их во время выполнения).
Теперь в WPF это немного проще, потому что есть элемент управления StackPanel, к которому вы можете просто добавлять элементы управления, и он автоматически размещает их вертикально друг под другом в стопочном списке. На самом деле ваш вариант использования точно соответствует тому, для чего предназначена StackPanel.
В WinForms нет StackPanel, но вы можете использовать обычный элемент управления Panel*. Просто вам придется вручную расположить элементы управления CommentBox один под другим. Вам также потребуется установить для свойства AutoScroll значение true, чтобы включить вертикальную полосу прокрутки, если содержимое не соответствует представлению.
*или, по-видимому, есть альтернатива Как я могу получить StackPanel макет в WinForms
person
Weyland Yutani
schedule
19.11.2013