当我打电话给新窗口时,如何关闭打开的窗口?这意味着我当时只想要一个儿童窗口。我不允许多窗口。
public partial class Main_Usr : Form
{
public Main_Usr()
{
InitializeComponent();
this.IsMdiContainer = true;
if (Program.IsFA) barSubItem_Ordre.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
Ordre_Liste f = new Ordre_Liste();
f.MdiParent = this;
f.Show();
}
private void barButtonItem_CreateOrdre_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
Program.AllerRetour = "Ordre Aller";
Ordre_Fiche f = new Ordre_Fiche();
f.MdiParent = this;
f.Show();
}
private void barButtonItem_OrdreListe_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
Ordre_Liste f = new Ordre_Liste();
f.MdiParent = this;
f.Show();
}
private void barButtonItem_CreateOrdRet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
Program.AllerRetour = "Ordre Retour";
Ordre_Fiche f = new Ordre_Fiche();
f.MdiParent = this;
f.Show();
}
}
答案 0 :(得分:1)
在类级别创建表单实例。 然后,您可以通过事件或方法访问它们。
Form1 f1;
Form2 f2;
void OpenForm1()
{
f1 = new Form1()
f1.Show();
}
void OpenForm2()
{
f1.Dispose(); //or Hide if you want to show it again later
f2 = new Form2();
f2.Show();
}
答案 1 :(得分:1)
实现伪母版页有多种方法:
实施例
Main_Usr
表单上创建所需的布局。Modifiers
设置为受保护)Ordre_Liste
表单代码并将其更改为继承自Main_Usr
表单,而不是Form
Ordre_Liste
表单瞧!你有'masterpage'
更新(第3个选项)
MasterUserControl
HomeUserControl
的新用户控件,并将其更改为从MasterUserControl
继承。HomeUserControl
设计器并添加自定义内容。您还可以修改具有protected
修饰符的父控件。HomePageUserControl
有不同的方法来实现控件(也称为页面)之间的导航。最简单的方法 - 在主表单上有菜单。其他方式 - 在主控件上定义事件'导航',在主窗体上订阅该事件,并从'pages'中提升它。
答案 2 :(得分:0)
像:
List<Form> openForms = new List<Form>();
foreach (Form f in Application.OpenForms)
openForms.Add(f);
foreach (Form f in openForms)
{
if (f.Name != "Menu")
f.Close();
}
注意,不要直接关闭它们,因为如果你试图在第一个foreach循环中关闭(或处理)它们会出现错误。这就是为什么你需要将它们放入列表并在那里关闭它们。