0

在用户按下 Gui 上的菜单后,我需要能够显示一组图像。我一直在尝试使用以下代码。

 private void imagePalleteToolStripMenuItem_Click(object sender, EventArgs e)
    {
        List<string> Files = this.MyImageCollection.ConvertFileNamesToList();
        foreach (string currtFile in Files)
        {
            Image newImage = Image.FromFile(currtFile);

            // Create rectangle for displaying image.
            Rectangle destRect = new Rectangle(100, 100, 450, 150);

            // Draw image to screen.
            e.Graphics.DrawImage(newImage, destRect);
        }

我认为这会起作用,但我得到了错误:

“System.EventArgs”不包含“Graphics”的定义,并且找不到接受“System.EventArgs”类型的第一个参数的扩展方法“Graphics”(您是否缺少 using 指令或程序集引用?)

我尝试用 PaintEventHandler 替换 EventHandler,但随后出现错误:

this.imagePalleteToolStripMenuItem.Click += new System.EventHandler(this.imagePalleteToolStripMenuItem_Click);

陈述:

“imagePalleteToolStripMenuItem_Click”没有重载匹配委托“System.EventHandler”

我还尝试将该行更改为:

this.imagePalleteToolStripMenuItem.Click += new System.Windows.Forms.PaintEventHandler(this.imagePalleteToolStripMenuItem_Click);

但这也给出了一个错误说明:

无法将类型“System.Windows.Forms.PaintEventHandler”隐式转换为“System.EventHandler”r

*注意: *我的总体目标是调用一个对话框,以缩略图形式显示所有图像。因此,如果这不是正确的方法,请重定向我

4

2 回答 2

1

您将绘制事件与单击事件混淆了。如果您希望在用户单击按钮时发生某些事情,请将其放入 click 事件中。点击按钮你会画什么?

相反,设计一个新表单来显示您的图像,在按钮单击事件中,收集您的图像,并将这些图像提供给您的对话框。让对话框担心显示它们。

于 2012-11-30T19:11:45.843 回答
0

看起来您抓取了一些最初在OnPaint事件中的示例代码。您已将此添加到完全不同类型的事件中,它不会向您传递Graphics对象。您要么需要将此代码放在OnPaint您想要的任何控件中,要么尝试完全不同的方法。

正确的解决方案取决于您希望它如何工作(您是否尝试更新屏幕上已有的内容、显示新对话框等)。

于 2012-11-30T19:12:01.693 回答