我想创建包含有关某个项目的详细信息的面板(包括左侧的缩略图),然后将它们添加到可滚动列表中。很像 iPhone 上的 iTunes 显示可用应用程序列表的方式。
我已经进行了一些搜索,但到目前为止找不到任何帮助。
有没有人有任何想法或样本链接想与我分享。
提前致谢, 罗布
最佳答案
总而言之,以下代码在一个容器内创建了一系列面板,这些面板使用垂直滚动条滚动进出 View 。
您没有在您的标签中列出 ASP.NET,所以我假设这是基于 Windows 表单的,而不是基于 Web 的。我会让你开始:
- 创建一个名为
GrandChildPanel
的面板。在其中,在左侧放置一个图像框,并在图像旁边放置带有您要显示的信息的标签。 将为每个项目(即 iTunes 歌曲)复制此面板。 - 将该面板放在另一个名为
ChildPanel
的等宽、等高面板中。 - 创建另一个名为
ParentPanel
的面板,并将其宽度设置为其他面板的大小加上垂直滚动条的足够空间。将高度设置为您希望可滚动区域的高度。 - 将
ChildPanel
放在ParentPanel
的右上角,并在ParentPanel
的最右边缘添加一个垂直滚动条。将滚动条的高度设置为占据ParentPanel
的整个高度。 - 您可能想要向
ParentPanel
添加边框以显示其边界。 - 您可能还想在
GrandChildPanel
的底部添加一条 1 或 2 像素的线,以显示面板的结束位置。
这就是设置。以下是对您的代码的要求:每次“将项目添加到列表”(例如,iTunes 列表中的每首歌曲)时,您都执行以下操作:
- 克隆
GrandChildPanel
。 - 将克隆指定为
ChildPanel
的子项。 - 将克隆的
Top
设置为等于前一个克隆的Top
加上它的Height
。 - 将
ChildPanel
的Height
设置为任何给定的GrandChildPanel
的高度乘以克隆数。 - 将滚动条的最大值设置为等于
ChildPanel
的高度。
现在,要使其可滚动,您只需对垂直滚动条的滚动或更改事件执行以下操作:将 ChildPanel
的 Top
设置为等于垂直滚动条的值(“位置”)乘以 -1
。
关于C# 面板列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163634/