父窗体form1中有个"打开子窗体from2"的按钮
按扭代码是:
Form2 ff2=new Form2();
ff2.show();在打开的子窗体form2中有“隐藏from1”,"显示from1",“改变from1的size”等等的按钮.
隐藏from1的代码我是这样写的但是不起效
Form1 f1=new Form1();
f1.Visible=false;请问这些按钮的代码怎样写才能控制到from1呀?
按扭代码是:
Form2 ff2=new Form2();
ff2.show();在打开的子窗体form2中有“隐藏from1”,"显示from1",“改变from1的size”等等的按钮.
隐藏from1的代码我是这样写的但是不起效
Form1 f1=new Form1();
f1.Visible=false;请问这些按钮的代码怎样写才能控制到from1呀?
最简单的办法是,你在form2中增加一个属性:
private Form1 m_ParentForm
public Form1 parentForm
{
get { return m_ParentForm; }
set { m_ParentForm = value; }
}原来的:
Form2 ff2=new Form2();
ff2.show();
改为
Form2 ff2=new Form2();
ff2.ParentForm = this
ff2.show();然后
Form1 f1=new Form1();
f1.Visible=false;
可以改为:
m_ParentForm.Visible=false;我记得Form类本身有个Parent之类的属性,好像可以直接得到父窗体,记不清了……
把这个属性设为Form1
然后再Form2中操作这个属性就可以了你还可以在Form2 中定义委托
发出一个事件
在Form1中new Form2的时候
订阅这个事件
lovefootball哥讲得还很专业的
可能写些实例代码出来吗?
private void Form1_Load(object sender, System.EventArgs e)
{ Form2 form = new Form2();
form.Owner = this;
form.Show();
}FORM2中的控制
private void btnShowForm_Click(object sender, System.EventArgs e)
{
this.ShowHideForm(true);
} private void btnHideForm_Click(object sender, System.EventArgs e)
{
this.ShowHideForm(false);
} private void ShowHideForm(bool show)
{
Form formTemp = this.Owner;
if(show)
{
formTemp.Show();
}
else
{
formTemp.Hide();
}
} private void btnChangeFormSize_Click(object sender, System.EventArgs e)
{
Form formTemp = this.Owner;
formTemp.Size = new Size(300,400);
}已经测试通过,楼主可以试试
还想问一下
我在from1中加载了个DLL怎样在from2中把它释放呀??
这样别人读你的代码比较容易懂