繁体   English   中英

制作幻灯片查看器,处理从任意控件触发的事件

[英]Making a slideshow viewer, handling events fired from arbitrary controls

我正在扩展图像查看器以支持幻灯片显示功能。 我使用了一个split container将主表单分为两个面板。

  • 左侧面板将包含缩略图列表
  • 右侧面板将包含全尺寸图片

每个面板都支持拖放。 当我将图像文件放入缩略图面板时,它应该创建一个缩略图并将其显示在面板上,从顶部开始,然后随着更多图像的下降而逐渐向下。 默认情况下,第一个可用图像将显示在右侧面板上。

当我选择另一个缩略图时,查看器将显示完整尺寸的图像。

什么是实现此缩略图列表的好方法? 我已经浏览了可用的控件列表,但无法确定哪个控件最适合此控件。

我当时在考虑动态创建PictureBox对象,但是在注册Click事件后如何识别事件发自哪个PictureBox的过程似乎并不明显。

我正在寻找两种可能的答案之一

  • 继续使用PictureBox的创建思路,但要了解如何处理Click事件以正确显示所需的图像。
  • 显示拇指列表的另一种建议(如果PictureBox想法不可行)

您可以将事件处理程序绑定为多个控件,并通过“ sender”参数进行标识。 它始终指向事件发送者。

void OnClick(object sender, KeyEventArgs e) {
    PictureEdit editor = (PictureEdit)sender;
}

Sub OnClick(ByVal sender As Object, ByVal e As KeyEventArgs)
    Dim editor as PictureEdit = CType(sender, PictureEdit)
End Sub

或者,您可以创建自己的控件(不是很复杂),将控件划分为显示图像的矩形区域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM