允许第二种形式改变形式1上的图片框的可见性?

时间:2014-06-12 10:06:46

标签: c#

Form1:我已将修饰符设置为公共图像 - > Home_picturebox1

窗体2:

    public Form1 Firstform = new Form1(); // This is above the following code

    private void PS3IP_Confirm_Click(object sender, EventArgs e)
    {
        //PS3.ConnectTarget(PS3IP_Textbox1.Text); // Update the IP
        Firstform.Home_picturebox1.Show();
        //this.Close();
    }

它编译得很好但是一旦调用了事件就不会显示图像?

有什么想法吗? ://

3 个答案:

答案 0 :(得分:2)

new Form1完全按照它所说的创建Form1的新实例,你需要传递对原始表单的引用,这样做的一种方法是在构造函数中。

private Form1 FirstForm;
public Form2(Form1 myForm)
{
    FirstForm = myForm;
}

答案 1 :(得分:1)

<强>问题:

宣布

public Form1 Firstform = new Form1();

它实际上是在创建一个表单对象。

<强>解决方案:

您需要将Form1的对象作为参数发送到Form2,然后更改Home_picturebox1的可见性。

在Form1中:

private void btnGoToForm2_Click(object sender, EventArgs e)
{
    PS3IP obj= new PS3IP(this);
    obj.Show();
}

在Form2中:

public Form1 Firstform;
public PS3IP(Form1 ParentForm)
{
     InitializeComponent();
     FirstForm=ParentForm;
} 
private void PS3IP_Confirm_Click(object sender, EventArgs e)
{
    //PS3.ConnectTarget(PS3IP_Textbox1.Text); // Update the IP
    Firstform.Home_picturebox1.Show();
    //this.Close();
}

答案 2 :(得分:0)

您没有引用form1的当前实例,但是您创建了一个新实例,请尝试:

   Form1 form1;
    public Form6(Form1 form1)
    {
        InitializeComponent();
        this.form1=form1;
    }

private void PS3IP_Confirm_Click(object sender, EventArgs e)
    {

        form1.Home_picturebox1.Show();
        //this.Close();
    }