C# 在windows窗体C中加载图像时出现问题#

C# 在windows窗体C中加载图像时出现问题#,c#,image,picturebox,windows-forms-designer,C#,Image,Picturebox,Windows Forms Designer,我有两个窗体让我们称它们为form1和form2。form1由一个picturebox和一个按钮组成。当我点击按钮时,form2打开。现在,form2由一个网格组成,根据我在网格上单击的位置,x和y坐标返回到form1。基于这些坐标,我将图像添加到pictureBox。但是图像没有被添加!这里有我遗漏的东西吗 mouseDownEvent中的代码,格式2 表格1中的代码 此行仅创建Form1的新实例 public partial class Form2 : Form { Form1 fo

我有两个窗体让我们称它们为form1和form2。form1由一个picturebox和一个按钮组成。当我点击按钮时,form2打开。现在,form2由一个网格组成,根据我在网格上单击的位置,x和y坐标返回到form1。基于这些坐标,我将图像添加到pictureBox。但是图像没有被添加!这里有我遗漏的东西吗

mouseDownEvent中的代码,格式2

表格1中的代码

此行仅创建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);
    }
}
您可以做的是添加一个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);
    }
}

我已经用一个标签测试了这个示例,它运行良好,因此我认为picturebox应该没有问题

没有理由在
Form1
类中创建并填写
Form1 Form1
变量。。。您只需使用
newform2(this)
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)
    {

    }

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