C# 面板列表

Rob*_*ter 3 c# list panel winforms

我想创建包含有关项目的详细信息的面板(包括左侧的缩略图),然后将它们添加到可滚动列表中。很像 iPhone 上的 iTunes 显示可用应用程序列表的方式。

我已经做了一些搜索,但到目前为止还没有找到任何帮助。

有没有人有任何想法或链接到他们想与我分享的样本。

提前致谢,罗布

Dev*_*rke 5

总之,以下内容在容器内创建了一系列面板,这些面板使用垂直滚动条滚动进出视图。

您没有在标签中列出 ASP.NET,所以我假设这是基于 Windows 表单的,而不是基于 Web 的。我会让你开始:

  1. 创建一个名为 的面板GrandChildPanel。在其中,在左侧放置一个图像框,并在图像旁边标记您要显示的信息。将为每个项目(即 iTunes 歌曲)复制此面板。
  2. 将该面板放在另一个名为 的、等宽、等高的面板中ChildPanel
  3. 创建另一个名为的面板ParentPanel并将其宽度设置为其他面板的大小加上垂直滚动条的足够空间。将高度设置为您希望可滚动区域的高度。
  4. 放在ChildPanel的右上角ParentPanel并在 的最右边缘添加一个垂直滚动条ParentPanel。将滚动条的高度设置为占据整个高度ParentPanel
  5. 您可能想要添加边框ParentPanel以显示其边界。
  6. 您可能还想在底部添加 1 或 2 像素的线GrandChildPanel以显示面板的结束位置。

这就是设置。以下是对您的代码的要求: 每次“向列表中添加一个项目”(例如,iTunes 列表中的每首歌曲)时,您需要执行以下操作:

  1. 克隆GrandChildPanel.
  2. 将克隆指定为ChildPanel.
  3. 将克隆设置Top为等于前一个克隆Top加上它的Height.
  4. ChildPanelHeight个数等于任给定GrandChildPanel的高度乘以克隆的数量。
  5. 将滚动条的最大值设置为等于ChildPanel的高度。

现在,要使此可滚动,您只需对垂直滚动条的滚动或更改事件执行以下操作: 将ChildPanel'sTop设置为等于垂直滚动条的值(“位置”)乘以-1

  • 将尽快尝试这个。经过一些实验后,我会回来并将其标记为我的答案:) (2认同)