这是我的问题:
我有3种形式:
我想要当我单击Form fChild上的一个按钮时,它会显示Form OpenFormand并隐藏Form fParent和Form fChild。
我该怎么办?
请帮我。
答案 0 :(得分:0)
创建父窗体的新对象并关闭/隐藏它。如果要隐藏父表单,请调用Hide()
方法;如果要关闭父表单,请调用Close()
方法。
答案 1 :(得分:0)
最好的方法是创建一个单例类,因为如果你继续这样做,
Form1 f1 = new Form1();
f1.Show();
this.Hide();
您继续实例化新表单而不是回到之前的表单
这里是你如何做单身设计模式:
public static class SingletonForm
{
private static Form1 _f1;
private static Form2 _f2;
public static Form1 _Form1
{
get
{
if(_f1 == null)
{
_f1 = new Form1();
}
return _f1;
}
}
public static Form2 _Form2
{
get
{
if(_f2 == null)
{
_f2 = new Form2();
}
return _f2;
}
}
}
在您的按钮中单击表单,只需致电:
SingletonForm._Form1.Hide();
SingletonForm._Form2.ShowDialog();
答案 2 :(得分:0)
Assembly frmAssembly = Assembly.LoadFile(Application.ExecutablePath);
foreach (Type type in frmAssembly.GetTypes())
{
if (type.BaseType == typeof(Form))
{
if (type.Name == formname))
{
Form frmshow = (Form)frmAssembly.CreateInstance(type.ToString());
foreach (Form form in this.MdiChildren)
{
form.Close(); // form close or hide
}
frmshow.Show();
}
}
}