【发布时间】:2014-04-23 07:19:46
【问题描述】:
我已将一组图像加载到一个文件夹(图标)中,我想知道如何在程序启动期间将所有这些加载到列表视图中。我试图让它们加载到视图中,在图片下方显示带有标题或描述的图片。
在此之后,我计划(不知何故)选择一个并在图片框内单击以将图标添加到鼠标光标处的框中。
我对在 C# 中做这些类型的事情比较陌生。
【问题讨论】:
标签: c# listview picturebox
我已将一组图像加载到一个文件夹(图标)中,我想知道如何在程序启动期间将所有这些加载到列表视图中。我试图让它们加载到视图中,在图片下方显示带有标题或描述的图片。
在此之后,我计划(不知何故)选择一个并在图片框内单击以将图标添加到鼠标光标处的框中。
我对在 C# 中做这些类型的事情比较陌生。
【问题讨论】:
标签: c# listview picturebox
我认为您需要 ListView.LargeImageList 或 ListView.SmallImageList 属性。
请注意,它们的默认值为 null,这意味着您必须为它们分配一个新的 ImageList 对象。之后,您可以将图像加载到 ImageList。
然后您可以使用ListViewItem.ImageIndex 属性设置要显示的图像索引。
至于从文件中加载图片,可以使用Image.FromFile方法。
我不太确定我是否完全理解您从此时起想要实现的目标,但我认为ListView.ItemSelectionChanged 事件可以给您想要的。
【讨论】:
ListView 不支持嵌入的 PictureBoxes 或其他控件,但您可以使用 ImageList,如 ShdNx 所述。
确保在单独的线程上加载并正确同步(即在更新 ImageList 时调用 BeginInvoke)。这将确保您的 UI 在加载期间不会挂起。
还有 3rd 方组件Better Thumbnail Browser 正是为此(它支持从文件夹、数据库或其他来源自动加载、缩放、复选框、多通道加载、图像缓存和许多其他好东西):
【讨论】: