C# 需要帮助调用方法吗
我正在尝试将图片上载到winform,然后显示缩略图。我尝试将该功能添加到我的btnUpload_click方法中,但它不允许我将PaintEventArgs设置为eventhandler。为了解决这个问题,我创建了另一个方法,但现在需要知道如何调用它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
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
对象。如果代码在逻辑上不适合该程序,则需要对其进行返工。