Создать список элементов управления в Windows.Forms - PullRequest
10 голосов
/ 24 декабря 2010

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

Но мне нравится вести себя как список: полосы прокрутки, возможностьвыбрать несколько элементов и т. д.

Когда я смотрю на ListView и ListBox, я вижу только то, что могу добавить текст и значок, но не произвольные элементы управления.Мне не хватает как это сделать?

Или я должен использовать что-то еще, кроме ListView / ListBox?

Ответы [ 3 ]

8 голосов
/ 29 апреля 2014

Используйте FlowLayoutPanel.Если вы хотите, чтобы элементы управления располагались вертикально, с прокруткой, выполните:

myFlowLayoutPanel.AutoScroll = true;
myFlowLayoutPanel.FlowDirection = FlowDirection.TopDown;
myFlowLayoutPanel.WrapContents = false; // Vertical rather than horizontal scrolling
foreach(Control myControl in myControls){
    myFlowLayoutPanel.Controls.Add(myControl);
}

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

5 голосов
/ 24 декабря 2010

В блоках питания Visual Basic есть элемент управления, называемый Повторитель данных .

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

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

В настоящее время это самая близкая вещь к идее произвольного повторяющегося управления в Windows Forms, которую я нашел до сих пор.

2 голосов
/ 24 декабря 2010

Это было бы довольно тривиально создать в WPF (хотя в Windows Forms будет много работы) - WPF предназначен для создания таких элементов управления с богатым пользовательским интерфейсом.Если остальная часть вашего приложения находится в Windows Forms, вы можете разместить WPF control в Windows Forms .

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