我目前正在C#Visual Studio 2017中开发Windows窗体应用程序,并决定使用此处显示的教程来实现侧面板菜单。
单击时显示子表单非常有用,但是我想知道如何在子表单代码中用新的子表单替换当前子表单。即我如何在子表单代码中访问主表单。
private Form activeForm = null;
private void openChildForm(Form childForm)
{
if (activeForm != null)
activeForm.Close();
activeForm = childForm;
childForm.TopLevel = false;
childForm.FormBorderStyle = FormBorderStyle.None;
childForm.Dock = DockStyle.Fill;
childFormPanel.Controls.Add(childForm);
childFormPanel.Tag = childForm;
childForm.BringToFront();
childForm.Show();
}
这就是在主窗体中打开子窗体的方式。如何通过子表单访问此方法?我相信这可能会让人感到困惑,但是如果您快速浏览一下视频,就会明白我的意思。
谢谢!
可以使用保留您主要表单实例的静态类。当主窗体加载时,在FormController类中设置MainForm静态属性。然后从您的子窗体调用FormControll.openChildForm(...);
public static FormController{
public static Form MainForm {get;set;}
private static Form activeForm = null;
public static void openChildForm(Form childForm)
{
if (activeForm != null)
activeForm.Close();
activeForm = childForm;
MainForm.childForm.TopLevel = false;
MainForm.childForm.FormBorderStyle = FormBorderStyle.None;
MainForm.childForm.Dock = DockStyle.Fill;
MainForm.childFormPanel.Controls.Add(childForm);
MainForm.childFormPanel.Tag = childForm;
MainForm.childForm.BringToFront();
MainForm.childForm.Show();
}
}
然后,在子窗体中,您可以调用该静态类来更改窗体。
public class ChildForm{
private void btn_click(...){
FormController.openChildForm(<newChildForm>);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句