关于程序中点MID窗口最大化的问题,不知道该怎么解决,我的问题如下:没有最大化前,图片如下
http://apollo.cnblogs.com/gallery/image/24041.html最大化之后,图片如下
http://apollo.cnblogs.com/gallery/image/24042.html
请问下这个有办法解决吗?为什么我的子窗口的那些按纽会跑到菜单栏和工具栏的上面去了?
急啊!先谢谢了!

解决方案 »

  1.   

    设置菜单和工具栏的dock-top属性
    其它控件设置anchor属性
      

  2.   

    #region "创建ToolBar对象"
    ToolStrip _ToolStrip = new ToolStrip();
    _ToolStrip.Items.Add("关闭窗体");
    _ToolStrip.Dock = DockStyle.Top;
    this.Controls.Add(_ToolStrip);
    #endregion#region "动态加载菜单"
    MenuStrip SystemMenu = new MenuStrip();ToolStripMenuItem _MenuItem0 = new ToolStripMenuItem();
    _MenuItem0.Text = "文件(F)";
    _MenuItem0.DropDownItems.Add("Open FTP", null, new EventHandler(OpenFtp));
    _MenuItem0.DropDownItems.Add("退出(E)", Image.FromFile(Application.StartupPath + @"\\Resource\\Menu01.ico"), new EventHandler(this.MainExit));
    _MenuItem0.Dock = DockStyle.Top;
    SystemMenu.Items.Add(_MenuItem0);
    #endregion
    以下是我的OPenFTP的函数;
            private void OpenFtp(object sender, EventArgs e)
            {
                FtpForm _FtpForm = new FtpForm();
                _FtpForm.MdiParent = this;
                _FtpForm.Show();
            }好象应该已经是设置才成Top的拉,请问这个代码有问题吗?
                ToolStripMenuItem _MentItem2 = new ToolStripMenuItem();
                _MentItem2.Text = "窗体设置";
                _MentItem2.DropDownItems.Add("窗体层叠(&C)", null, new EventHandler(Cascade_Click));
                _MentItem2.DropDownItems.Add("水平平铺(&H)", null, new EventHandler(TileH_Click));
                _MentItem2.DropDownItems.Add("垂直平铺(&V)", null, new EventHandler(TileV_Click));
                _MentItem2.DropDownItems.Add("关于我们(&A)", null, new EventHandler(CopyRight));
                _MentItem2.Dock = DockStyle.Top;
                SystemMenu.Items.Add(_MentItem2);
                SystemMenu.Dock = DockStyle.Top;            this.Controls.Add(SystemMenu);
      

  3.   

    动态加载菜单之后加一句
    this.MainMenuStrip = SystemMenu;
      

  4.   

    http://apollo.cnblogs.com/gallery/image/24044.html
    加了这话后,效果是好多了,不过还不是理想的状态,这个是怎么回事情啊?
    .....
                SystemMenu.Items.Add(_MentItem2);
                SystemMenu.Dock = DockStyle.Top;
                this.Controls.Add(SystemMenu);
                this.MainMenuStrip = SystemMenu;
    .....
      

  5.   

    MainMenuStrip是form的一个属性,做MDI的时候必须把这个属性设为主窗体的菜单,不然子窗体最大化的时候就会发生之前的现象。楼主可以在窗体属性窗口中找到这个属性,下面的注释栏写的很清楚,原文是:
    Specifies the primary MenuStrip for the Form.This property is used for keyboard activation and automatic merging in MDI.
    这个就是标准的MDI啊,楼主想要的理想状态是什么啊?
      

  6.   

    已经初步实现了,不过不是像你们说的那样了。
    我的理想状态是这个样子的
    http://apollo.cnblogs.com/gallery/image/24077.html现在我是放在Panle中来做的。
    不知道这样做是不是最好的,还在研究中了。
      

  7.   

    还是没明白楼主的理想状体是什么样子.子窗体控制在Panel中?用这个好了
    form2.TopLevel = false;
    form2.Parent = form1.panel1;
    form2.Show();