已加载 pictureBox.ImageLocation 为空
Loaded pictureBox.ImageLocation is null
当我单击 pictureBox1 中显示的图像时,我正在尝试执行某些操作。
pictureBox 使用此代码加载:
string imgpath = @"img6.png";
pictureBox48.Image = Image.FromFile(imgpath);
然后控制权交给我,这样我就可以看到图片已正确加载。
然后我点击图片:
public void pictureBox48_Click(object sender, EventArgs e)
{
string variable1 = pictureBox48.ImageLocation;
Form3 fo = new Form3(variable1);
fo.ShowDialog();
}
这行不通。当我调试代码时,我看到 variable1
保持 null
,即 pictureBox48.ImageLocation
是 null
。这是为什么?不应该是那里分配的图片路径吗?
当您使用 Image
属性 设置图像时无法获取图像路径,因为您正在分配一个 Image 可能来自不同来源的对象。
使用ImageLocation
设置图像。
string imgpath = @"img6.png";
pictureBox48.ImageLocation = imgpath;
当您在 PictureBox 中单击时,您可以使用相同的路径获取路径 属性:
public void pictureBox48_Click(object sender, EventArgs e)
{
string variable1 = pictureBox48.ImageLocation;
Form3 fo = new Form3(variable1);
fo.ShowDialog();
}
在处理 Image
或 PictureBox
时,我建议不要使用图像的 Location
或 Path
之类的东西。假设当图像被加载时,用户将其从硬盘驱动器中删除,并且您留下了充满错误的代码。
这就是为什么您应该依赖 Image
本身,因为它包含有关图像的所有信息,例如像素格式、宽度、高度和原始像素数据。
我建议您只复制图像,而不是文件路径。
这段代码应该给你一个提示:
pixtureBox48.Image = Image.FromFile(imgPath);
// above code assumes that the image is still on hard drive and is accessible,
// now let's assume user deletes that file. You have the data but not on the physical location.
Image copyImage = (Image)pictureBox48.Image.Clone();
Form3 fo = new Form(copyImage); // change .ctor definition to Form(Image copy)
fo.ShowDialog();
当我单击 pictureBox1 中显示的图像时,我正在尝试执行某些操作。 pictureBox 使用此代码加载:
string imgpath = @"img6.png";
pictureBox48.Image = Image.FromFile(imgpath);
然后控制权交给我,这样我就可以看到图片已正确加载。 然后我点击图片:
public void pictureBox48_Click(object sender, EventArgs e)
{
string variable1 = pictureBox48.ImageLocation;
Form3 fo = new Form3(variable1);
fo.ShowDialog();
}
这行不通。当我调试代码时,我看到 variable1
保持 null
,即 pictureBox48.ImageLocation
是 null
。这是为什么?不应该是那里分配的图片路径吗?
当您使用 Image
属性 设置图像时无法获取图像路径,因为您正在分配一个 Image 可能来自不同来源的对象。
使用ImageLocation
设置图像。
string imgpath = @"img6.png";
pictureBox48.ImageLocation = imgpath;
当您在 PictureBox 中单击时,您可以使用相同的路径获取路径 属性:
public void pictureBox48_Click(object sender, EventArgs e)
{
string variable1 = pictureBox48.ImageLocation;
Form3 fo = new Form3(variable1);
fo.ShowDialog();
}
在处理 Image
或 PictureBox
时,我建议不要使用图像的 Location
或 Path
之类的东西。假设当图像被加载时,用户将其从硬盘驱动器中删除,并且您留下了充满错误的代码。
这就是为什么您应该依赖 Image
本身,因为它包含有关图像的所有信息,例如像素格式、宽度、高度和原始像素数据。
我建议您只复制图像,而不是文件路径。
这段代码应该给你一个提示:
pixtureBox48.Image = Image.FromFile(imgPath);
// above code assumes that the image is still on hard drive and is accessible,
// now let's assume user deletes that file. You have the data but not on the physical location.
Image copyImage = (Image)pictureBox48.Image.Clone();
Form3 fo = new Form(copyImage); // change .ctor definition to Form(Image copy)
fo.ShowDialog();