允许第二个表单更改表单1上图片框的可见性
本文关键字:表单 可见性 第二个 | 更新日期: 2023-09-27 18:08:13
Form1:我已经将图像的修饰符设置为public -> Home_picturebox1
Form2:
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();
}
它编译良好,但图像不显示一旦事件已被调用?
任何想法?://
new Form1
确实做到了它所说的,创建了一个Form1的新实例,你需要传递一个引用到你的原始表单,这样做的一种方法是在构造函数中。
private Form1 FirstForm;
public Form2(Form1 myForm)
{
FirstForm = myForm;
}
问题:
当你声明
public Form1 Firstform = new Form1();
它实际上是创建一个新的表单对象。
解决方案:
您需要将Form1
的对象作为参数发送给Form2
,然后更改Home_picturebox1
的可见性。
private void btnGoToForm2_Click(object sender, EventArgs e)
{
PS3IP obj= new PS3IP(this);
obj.Show();
}
In 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();
}
您没有引用当前的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();
}