无法以 windows 形式加载图像 C#
Trouble loading images in windows forms C#
我有 2 个 windowsForms 让我们称它们为 form1 和 form2。 form1 由一个图片框和一个按钮组成。当我单击按钮时,form2 打开。现在 form2 由一个网格组成,根据我在网格上单击的位置,x 和 y 坐标返回到 form1。基于这些坐标,我将图像添加到 pictureBox。但是图像没有被添加!我在这里遗漏了什么吗?
Code inside the mouseDownEvent in form2
Form1 f1 = new Form1();
f1.openImage(x,y);
Code in form1
internal void openImage(int x, int y)
{
string ogFileName = "r" + x.ToString() + "c" + y.ToString();
string imageFilePath = ogFileName + "." + extension;
MessageBox.Show(imageFilePath); //I can see the correct path here
pictureBox1.Image = Image.FromFile(imageFilePath);
}//extension is a static variable declared outside this function.
Form1 f1 = new Form1();
这一行只创建了 Form1 的一个新实例
您可以添加一个 Form1 变量来引用您当前的表单。
您在构造函数中对其进行初始化,然后在单击按钮时将其传递给 Form2
public partial class Form1 : Form
{
Form1 form1; // form1 will store the reference of Form1
public Form1()
{
form1 = this; // We initialize form1 in the constructor
InitializeComponent();
}
// button to open form2
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(form1); // We open form2 with form1 as parameter
form2.Visible = true;
}
public void openImage(int x, int y)
{
}
}
现在在 Form2 中,您只需添加一个将在构造函数中初始化的 Form1 变量。
然后你就可以使用它了,因为它代表了 Form1 的当前实例
public partial class Form2 : Form
{
Form1 form1; // Reference to form1
public Form2(Form1 form1)
{
this.form1 = form1; // We initialize form1
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// we call openimage from form1
form1.openImage(130, 140);
}
}
我已经用标签测试了这个例子,它工作正常,所以我认为图片框应该没有问题
我有 2 个 windowsForms 让我们称它们为 form1 和 form2。 form1 由一个图片框和一个按钮组成。当我单击按钮时,form2 打开。现在 form2 由一个网格组成,根据我在网格上单击的位置,x 和 y 坐标返回到 form1。基于这些坐标,我将图像添加到 pictureBox。但是图像没有被添加!我在这里遗漏了什么吗?
Code inside the mouseDownEvent in form2
Form1 f1 = new Form1();
f1.openImage(x,y);
Code in form1
internal void openImage(int x, int y)
{
string ogFileName = "r" + x.ToString() + "c" + y.ToString();
string imageFilePath = ogFileName + "." + extension;
MessageBox.Show(imageFilePath); //I can see the correct path here
pictureBox1.Image = Image.FromFile(imageFilePath);
}//extension is a static variable declared outside this function.
Form1 f1 = new Form1();
这一行只创建了 Form1 的一个新实例
您可以添加一个 Form1 变量来引用您当前的表单。
您在构造函数中对其进行初始化,然后在单击按钮时将其传递给 Form2
public partial class Form1 : Form
{
Form1 form1; // form1 will store the reference of Form1
public Form1()
{
form1 = this; // We initialize form1 in the constructor
InitializeComponent();
}
// button to open form2
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(form1); // We open form2 with form1 as parameter
form2.Visible = true;
}
public void openImage(int x, int y)
{
}
}
现在在 Form2 中,您只需添加一个将在构造函数中初始化的 Form1 变量。
然后你就可以使用它了,因为它代表了 Form1 的当前实例
public partial class Form2 : Form
{
Form1 form1; // Reference to form1
public Form2(Form1 form1)
{
this.form1 = form1; // We initialize form1
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// we call openimage from form1
form1.openImage(130, 140);
}
}
我已经用标签测试了这个例子,它工作正常,所以我认为图片框应该没有问题