C# 面板列表

标签 c# winforms list panel

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

我已经进行了一些搜索,但到目前为止找不到任何帮助。

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

提前致谢, 罗布

最佳答案

总而言之,以下代码在一个容器内创建了一系列面板,这些面板使用垂直滚动条滚动进出 View 。

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

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

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

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

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

关于C# 面板列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163634/

相关文章:

python - 使用 Python 和 split() 解析文本文件

c# - 默认构造函数在不需要时不必要地初始化依赖项

c# - asp.net core 2.0 授权在身份验证(JWT)之前触发

c# - LINQ 方法通过一个函数加入一个系列中的每 n 个元素,然后将这些结果重新聚合到一个新列表中?

c# - 显示表单时出现 ThreadState 异常

c# - 组合框中的两个项目相同但第一个总是被选中 C#

c# - 文本框的自定义外观

c++ - 无法从 "initializer list"转换

python 在列表列表中查找重复列表

c# - 在数据网格文本框 WPF 中显示文本的缺失部分