Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要帮助调用方法吗_C#_Winforms_Methods - Fatal编程技术网

C# 需要帮助调用方法吗

C# 需要帮助调用方法吗,c#,winforms,methods,C#,Winforms,Methods,我正在尝试将图片上载到winform,然后显示缩略图。我尝试将该功能添加到我的btnUpload_click方法中,但它不允许我将PaintEventArgs设置为eventhandler。为了解决这个问题,我创建了另一个方法,但现在需要知道如何调用它 private void btnUpload_Click(object sender, EventArgs e) {} public void getImage(PaintEventArgs ex) { Image.GetThumbna

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

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);
    }
}

感谢您的帮助

对于
图形
实例,您不需要
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);
}

对于
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);
}

您是否尝试过
getImage((PaintEventAgs)e)
btnUpload\u单击
?@evanmdonnal,它将在运行时抛出。为什么需要PaintEventArgs?将图像分配给某个pictureBox或表单的背景图像。您是否尝试过
getImage((PaintEventAgs)e)
btnUpload\u单击
?@evanmdonnal,它将在运行时抛出。为什么需要PaintEventArgs?将图像分配给某些pictureBox或表单的背景图像。
DrawImage
如果用户移动表单或执行任何操作导致触发
Paint
事件,则这种方式将不起作用。@KingKing,当然图像重绘会有问题,但OP不需要
PaintEventArgs
。我对这个计划和OP已经存在的持久性一无所知。这解决了OP的问题。使用此snippit会在以下行抛出未设置为对象错误的对象引用:pictureBox1.Image.GetThumbnailImage(114108,myCallback,IntPtr.Zero)@用户2379048,这可能是因为
Image
null
。但那是因为你没有把它放在这里。我只是简单地获取了您给我们的代码,并向您展示了如何在不使用
PaintEventArgs
的情况下获得
Graphics
对象。如果代码在逻辑上不适合该程序,则需要对其进行返工。
DrawImage
如果用户移动表单或执行任何操作,导致触发
Paint
事件,则这种方式将不起作用。@KingKing,当然重新绘制图像时会出现问题,但OP不需要
PaintEventArgs
。我对这个计划和OP已经存在的持久性一无所知。这解决了OP的问题。使用此snippit会在以下行抛出未设置为对象错误的对象引用:pictureBox1.Image.GetThumbnailImage(114108,myCallback,IntPtr.Zero)@用户2379048,这可能是因为
Image
null
。但那是因为你没有把它放在这里。我只是简单地获取了您给我们的代码,并向您展示了如何在不使用
PaintEventArgs
的情况下获得
Graphics
对象。如果代码在逻辑上不适合该程序,则需要对其进行返工。