Windows Forms 및 C #의 동적 하향식 컨트롤 목록?
-
09-06-2019 - |
문제
SharpWired 프로젝트에서 다운로드 창과 유사한 다운로드 구성 요소를 만들려고합니다. Firefox 또는 Safari에서. 즉, 진행률 표시 줄, 버튼 등을 포함하는 사용자 지정 컨트롤 인 다운로드의 단일 하향식 목록입니다.
요구 사항은 각 행에 요소가 하나씩있는 단일 목록이 있어야한다는 것입니다. 각 요소는 사용자 지정 컨트롤이어야합니다. 전체 목록은 동적으로 크기를 조정할 수 있어야하므로 목록을 더 길거나 짧게 만들면 필요할 때 스크롤 막대가 추가되고 더 얇거나 넓게 만들면 사용자 지정 컨트롤의 크기가 목록 너비에 맞게 조정되어야합니다.
우리는 FlowLayoutPanel
를 사용해 보았지만 우리가 원하는 방식으로 작동하도록 크기를 조정하지 않았습니다. 가급적이면 사용자 지정 컨트롤의 고정을 왼쪽 및 오른쪽으로 설정해야합니다. 우리는 또한 TableLayoutPanel
를 사용하는 것에 대해 생각했지만 동적으로 행을 추가하여 지금까지 너무 큰 오버 헤드를 초래했습니다.
이것은 매우 일반적인 사용 사례 임에 틀림 없으며 FlowLayoutPanel
가이를 수행하는 직관적 인 방법이 없다는 것이 조금 이상해 보입니다. 유사한 일을했거나 우리를 진행시키기위한 요령이나 요령이있는 사람이 있습니까?
건배!
/ 아담
해결책
데이터 바인딩을 사용하지 않으려면 (위에서 언급 한대로 DataRepeater
컨트롤을 통해) 일반 Panel
컨트롤을 사용하고 해당 AutoScroll
속성을 true로 설정하면됩니다 (스크롤바를 활성화하기 위해).
그런 다음 사용자 지정 컨트롤을 수동으로 추가하고 각 컨트롤의 Dock
속성을 Top
로 설정할 수 있습니다.
다른 팁
.NET 3.5 SP1은 DataRepeater Windows Forms 컨트롤은 원하는 작업을 수행하는 것처럼 들립니다."다운로드"목록 (또는 목록이 나타내는 모든 항목)에 바인딩하고 필요한 컨트롤을 포함하도록 각 항목 패널을 사용자 지정합니다.