【问题标题】:Need help calling a method需要帮助调用方法
【发布时间】:2013-09-10 21:17:15
【问题描述】:

我正在尝试将图片上传到 winform,然后显示缩略图。我尝试将功能添加到我的 btnUpload_click 方法,但它不允许我将 PaintEventArgs 设置为事件处理程序。所以为了解决这个问题,我创建了另一个方法,但现在需要知道如何调用它。

private void btnUpload_Click(object sender, EventArgs e)
{}

public void getImage(PaintEventArgs ex)
{
    Image.GetThumbnailImageAbort myCallback =
    new Image.GetThumbnailImageAbort(ThumbnailCallback);

    OpenFileDialog open = new OpenFileDialog();
    // image filters
    open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp";
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box
        upload = new Bitmap(open.FileName);

        pictureBox1.Image.GetThumbnailImage(114, 108, myCallback, IntPtr.Zero);
        ex.Graphics.DrawImage(upload, 150, 75);
    }
}

感谢您的帮助

【问题讨论】:

  • 你试过getImage((PaintEventAgs) e);里面的btnUpload_Click吗?
  • @evanmcdonnal 这只会在运行时抛出。
  • 为什么需要 PaintEventArgs?将您的图像分配给某个图片框或表单的背景图像。

标签: c# winforms methods


【解决方案1】:

Graphics 实例不需要 PaintEventArgs。只需更改代码以在按钮单击内工作:

Image.GetThumbnailImageAbort myCallback =
    new Image.GetThumbnailImageAbort(ThumbnailCallback);

OpenFileDialog open = new OpenFileDialog();

// image filters
open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp";
if (open.ShowDialog() == DialogResult.OK)
{
    // display image in picture box
    upload = new Bitmap(open.FileName);

    pictureBox1.Image.GetThumbnailImage(114, 108, myCallback, IntPtr.Zero);
    this.CreateGraphics().DrawImage(upload, 150, 75);
}

【讨论】:

  • DrawImage 如果用户移动表单或执行任何操作以触发 Paint 事件,这种方式将不起作用。
  • @KingKing,图像重绘当然存在问题,但 OP 不需要PaintEventArgs。我对程序和 OP 已经存在的持久性一无所知。这解决了 OP 的问题。
  • 使用此代码段会在以下行引发 Object reference not set to an object 错误:pictureBox1.Image.GetThumbnailImage(114, 108, myCallback, IntPtr.Zero);
  • @user2379048,这可能是因为Imagenull。但那是因为你没有在这里设置它。我只是拿了你给我们的代码,向你展示了如何在没有PaintEventArgs 的情况下获取Graphics 对象。如果代码在逻辑上不适合程序,则需要重新编写。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多