C#如何保持最大化窗口的原样?

C#如何保持最大化窗口的原样?,c#,user-interface,maximize-window,C#,User Interface,Maximize Window,我正在使用VisualStudio2010做我的C#GUI 我目前面临的问题是,在最大化窗口后,它会留在那里,但当我转到其他窗体时,窗口会恢复到其原始大小 单击“最大化”按钮后,如何始终为所有窗体保留最大化窗口 举个例子: 用户最大化表单A 形成最大化 用户进入表格B 表格B返回到原始大小,而不是最大化窗口 我想要的是,当用户最大化表单时,它会一直保持这种状态,直到程序关闭或调整大小。假设您使用的是WinForms,您可以实现共享FormWindowsState管理器或使用多文档界面(MDI)容

我正在使用VisualStudio2010做我的C#GUI

我目前面临的问题是,在最大化窗口后,它会留在那里,但当我转到其他窗体时,窗口会恢复到其原始大小

单击“最大化”按钮后,如何始终为所有窗体保留最大化窗口

举个例子:

  • 用户最大化表单A
  • 形成最大化
  • 用户进入表格B
  • 表格B返回到原始大小,而不是最大化窗口

  • 我想要的是,当用户最大化表单时,它会一直保持这种状态,直到程序关闭或调整大小。

    假设您使用的是WinForms,您可以实现共享FormWindowsState管理器或使用多文档界面(MDI)容器

    共享窗体窗口状态 您可以向负责在窗体的FormWindowsState中传播更改的类注册每个窗体

    public class FormWindowStateManager {
        List<Form> _Forms;
    
        ...
    
        public void Register(Form form) {
            if(!_Forms.Contains(form)) {
                _Forms.Add(form);
                form.Resize += new EventHandler(Form_Resize);
            }
        }
    
        public void Unregister(Form form) {
            if(_Forms.Contains(form)) {
                _Forms.Remove(form);
                form.Resize -= new EventHandler(Form_Resize);
            }
        }
    
        private void Form_Resize(object sender, EventArgs e) {
            Form form = sender as Form;
            if(form != null) {
                if(form.FormWindowState == FormWindowState.Maximized || form.FormWindowState == FormWindowState.Normal) {
                    PropagateWindowState(form.FormWindowState);
                }
            }
        }
    
        private void PropagateWindowState(FormWindowState state) {
            foreach(Form form in _Forms) {
                if(form.FormWindowState != state) {
                    form.FormWindowState = state;
                }
            }
        } 
    }
    
    MdiChildForm.cs

    MdiParent = myParentForm; // instance of MdiParentForm
    
    您可以使用窗体的
    MdiChildren
    属性遍历窗体的MDI子窗体,以便在MDI子窗体上更改其
    FormWindowsState
    时,MDI父窗体可以将更改应用于其每个子窗体,类似于共享FormWindowsState方法


    这些想法都是我脑子里想不出来的,但也许它们会让你走上正确的方向。

    你如何最大化窗口??手动或编程?一个简短但完整的程序来演示这个问题真的很有帮助。你注册过任何表单事件吗?
    MdiParent = myParentForm; // instance of MdiParentForm