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

时间:2012-07-26 23:32:36

标签: c# winforms

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

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

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

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

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

我正在考虑动态创建PictureBox对象,但是在我注册Click事件后,我怎么会识别事件是从哪个PictureBox发送的。

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

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

1 个答案:

答案 0 :(得分:1)

您可以将事件处理程序绑定到乘法控件,并通过“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

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