图片框的可见属性不能在c#的其他窗体中工作
本文关键字:其他 窗体 工作 属性 不能 | 更新日期: 2023-09-27 18:05:14
你好,我在c#中使用windows窗体。我试图修改从主要形式到另一个图片的可见属性。最初,图片框的visible属性设置为false。当从另一个表单单击按钮时,图片框的visible属性被修改为true。
这是在Form2方法中编写的代码:
private void button_Click(object sender, EventArgs e)
{
public Form1 frm1 = new Form1();
frm1.pictureBox.Visible= true;
}
Form1
是一个实例类型,所以当您执行
public Form1 frm1 = new Form1();
frm1.pictureBox.Visible= true;
你实际上只是创建了一个与原来的Form1
完全无关的Form1
的新实例,改变了图片框的可见属性,然后丢弃它。
你能做的,就是在你的Form2
类中放入一个对"父"Form1
的引用。
这里有一个例子
public partial class Form2 : Form
{
public Form2(Form1 parent)
{
InitializeComponent();
this.Parent = parent;
}
Form1 Parent;
private void button1_Click(object sender, EventArgs e)
{
Parent.pictureBox.Visible= true;
}
...
}
创建一个表单实例:
public Form1 frm1 = new Form1();
这显然不是你的页面中已经有的表单,你可以简单地通过它的ID访问它。
根据您编写的代码,它将创建所需表单的新实例,而不是采用现有的打开表单。因此,要识别包含目标图片框的现有打开表单,您需要目标表单和控制表单通过父表单或MDI父表单相关联。假设MDI父表单的情况(即控制表单是目标表单的MDI父表单),您需要以下代码来识别现有的打开表单:
foreach (Form frm in MdiChildren)
{
if (frm is myTargetForm)
{
//do your code to find control using id of picture box and change the required properties
}
}