如何将图像从表单传递到另一种形式

时间:2017-05-05 16:43:53

标签: c# winforms

所以我有2个表格和

这就是form1的样子:

enter image description here

如果我点击“浏览图片”,它会显示:

enter image description here

来自我的第一张表格中的代码:

private void browseimage_Click(object sender, EventArgs e)
{
    OpenFileDialog result = new OpenFileDialog();

    if (result.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
    }
}

if内我想存储我选择的图像文件,然后将值传递给第二个表单。

2 个答案:

答案 0 :(得分:0)

将图像存储在Image类型变量中,并通过第二个表单的构造函数传递变量。 像这样:

Image myImage = Image.FromFile("C:\\... 
Pathtotheimage... ");
MyForm form = new MyForm(myImage);

在第二个表单的构造函数侧。做这样的事情:

Public MyForm (Image image) {
//do something here with the image 
} 

我没有尝试编译此代码,但您可以将图像传递给第二种形式

希望它可以提供帮助

答案 1 :(得分:0)

另一种方法是在Form2中为图像创建公共属性:

public partial class Form2 : Form
{
    public Image ImageFromForm1 { get; set; }

    // rest of code omitted...

然后,当您从用户获取路径并创建表单实例时,可以像这样设置属性:

private void browseimage_Click(object sender, EventArgs e)
{
    var imageFileTypes = new List<string>
    {
        "Bitmap|*.bmp;*.dib",
        "JPEG|*.jpg;*.jpeg;*.jpe;*.jfif",
        "GIF|*.gif",
        "TIFF|*.tif;*.tiff",
        "PNG|*.png",
        "ICO|*.ico",
        "All Images|*.bmp;*.dib;*.jpg;*.jpeg;*.jpe;*.jfif;*.gif;*.tif;*.tiff;*.png;*.ico"
    };

    OpenFileDialog result = new OpenFileDialog
    {
        InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures),
        Filter = string.Join("|", imageFileTypes),
        FilterIndex = imageFileTypes.Count
    };

    if (result.ShowDialog() == DialogResult.OK)
    {
        var form2 = new Form2();
        form2.ImageFromForm1 = Image.FromFile(result.FileName);
        form2.Show();
    }
}