如何从子窗体打开窗体并在主窗体面板中显示

lhunter664

我目前正在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();
    }

这就是在主窗体中打开子窗体的方式。如何通过子表单访问此方法?我相信这可能会让人感到困惑,但是如果您快速浏览一下视频,就会明白我的意思。

谢谢!

P

可以使用保留您主要表单实例的静态类。当主窗体加载时,在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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从从父窗体打开的模态窗体中打开窗体

来自分类Dev

在C#中隐藏/显示Windows窗体面板

来自分类Dev

Windows窗体面板中如何查找标签是否存在

来自分类Dev

Windows窗体面板中如何查找标签是否存在

来自分类Dev

打开窗体窗口时,如何使代码在VBA中运行?

来自分类Dev

如何将字符串从子窗体返回到主窗体(不打开任何新窗体)?

来自分类Dev

如何在C#Windows窗体中的特定位置放置打开窗体?

来自分类Dev

如何使窗体全屏显示面板

来自分类Dev

打开窗体时显示消息(设计器时间)

来自分类Dev

如何从子窗体触发父窗体事件?

来自分类Dev

无法在Windows桌面窗体.NET Core应用程序中打开窗体[设计]视图

来自分类Dev

Windows窗体初始屏幕-加载主窗体时显示窗体

来自分类Dev

Windows窗体打开新窗体以显示数据

来自分类Dev

如何将按钮从子窗体动态添加到主窗体

来自分类Dev

如何将Windows窗体面板添加到Wpf TabControl

来自分类Dev

如何将Windows窗体面板添加到Wpf TabControl

来自分类Dev

如何从第三个窗体打开一个窗体到面板?

来自分类Dev

Microsoft Access如何从子窗体刷新父窗体

来自分类Dev

Microsoft Access如何从子窗体刷新父窗体

来自分类Dev

在C#中,主窗体的控件后面打开了子窗体

来自分类Dev

如何从主窗体获取对象

来自分类Dev

如何在C#中从子窗体调用父窗体方法?

来自分类Dev

从父窗体关闭打开的窗体

来自分类Dev

隐藏和重新显示Windows窗体中的面板/组件

来自分类Dev

在Windows窗体中循环遍历ArrayList并在窗体上显示

来自分类Dev

在Windows窗体中循环遍历ArrayList并在窗体上显示

来自分类Dev

从主窗体运行VBA以验证子窗体中的总计

来自分类Dev

从MS Access 2007中的不同记录打开窗体的命令按钮

来自分类Dev

返回具有打开其他窗体(C#)的窗体的主窗体,然后关闭其他窗体?

Related 相关文章

  1. 1

    从从父窗体打开的模态窗体中打开窗体

  2. 2

    在C#中隐藏/显示Windows窗体面板

  3. 3

    Windows窗体面板中如何查找标签是否存在

  4. 4

    Windows窗体面板中如何查找标签是否存在

  5. 5

    打开窗体窗口时,如何使代码在VBA中运行?

  6. 6

    如何将字符串从子窗体返回到主窗体(不打开任何新窗体)?

  7. 7

    如何在C#Windows窗体中的特定位置放置打开窗体?

  8. 8

    如何使窗体全屏显示面板

  9. 9

    打开窗体时显示消息(设计器时间)

  10. 10

    如何从子窗体触发父窗体事件?

  11. 11

    无法在Windows桌面窗体.NET Core应用程序中打开窗体[设计]视图

  12. 12

    Windows窗体初始屏幕-加载主窗体时显示窗体

  13. 13

    Windows窗体打开新窗体以显示数据

  14. 14

    如何将按钮从子窗体动态添加到主窗体

  15. 15

    如何将Windows窗体面板添加到Wpf TabControl

  16. 16

    如何将Windows窗体面板添加到Wpf TabControl

  17. 17

    如何从第三个窗体打开一个窗体到面板?

  18. 18

    Microsoft Access如何从子窗体刷新父窗体

  19. 19

    Microsoft Access如何从子窗体刷新父窗体

  20. 20

    在C#中,主窗体的控件后面打开了子窗体

  21. 21

    如何从主窗体获取对象

  22. 22

    如何在C#中从子窗体调用父窗体方法?

  23. 23

    从父窗体关闭打开的窗体

  24. 24

    隐藏和重新显示Windows窗体中的面板/组件

  25. 25

    在Windows窗体中循环遍历ArrayList并在窗体上显示

  26. 26

    在Windows窗体中循环遍历ArrayList并在窗体上显示

  27. 27

    从主窗体运行VBA以验证子窗体中的总计

  28. 28

    从MS Access 2007中的不同记录打开窗体的命令按钮

  29. 29

    返回具有打开其他窗体(C#)的窗体的主窗体,然后关闭其他窗体?

热门标签

归档