已有141人关注
MDI子窗体 实现默认最大化,并且controlbox 设置为false。的问题。
发表在C#答疑区 2017-07-27
是否精华
版块置顶:

1、新建项目 vs c# --->windows---> 窗体应用程序

2、添加windows窗体--->mdi父窗体

3、mdi父窗体 isMdiContainer 设置为true

4、在mdi父窗体中 的load 事件中加入如下代码

            Form1 form = new Form1();
            form.MdiParent = this;
            form.ControlBox = false;
            form.WindowState = FormWindowState.Maximized;
            form.Show();

5、运行可以实现我要的功能,但是如果将菜单 menustrip 删除掉。 注释掉错误语句,再次运行后 右上角又会出现 最大化,最小化,以及关闭按钮了。

这是什么原因呢,难道菜单必须存在



分享到:
精彩评论 5
小禾斗
学分:7308 LV13
TA的每日心情
奋斗
2017-04-21 14:00:25
2017-07-27
沙发

读者朋友:

  您好,跟菜单没有关系,那里需要显示MDI子窗体,就在那里设置它的ControlBox 和WindowState 就可以。

18204733789
学分:5 LV1
2017-07-27
板凳

感谢你的回复,可能我没有表达清除我的意思,首先我可以实现我的需求如下图

mdi.png

mdi子窗体没有controlbox,并且是最大化显示,这个时候我把mdi父窗体中的菜单删除掉。如下图

del.png

之后mdi父窗体界面变成这样了。

nomenu.png

注释掉:这里的语句后

        private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e)
        {
          //  toolStrip.Visible = toolBarToolStripMenuItem.Checked;
        }

        private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e)
        {
           // statusStrip.Visible = statusBarToolStripMenuItem.Checked;
        }

再次运行,结果是这样。注意不仅右侧出现了controlbox 而且左侧出现了还原显示菜单。很奇怪呀

error.png


18204733789
学分:5 LV1
2017-07-28
地板

我使用的vs 版本是 visual 2015

小禾斗
学分:7308 LV13
TA的每日心情
奋斗
2017-04-21 14:00:25
2017-07-28
4L

读者朋友:

  您好,对于普通窗体,ControlBox可以控制不显示最大化、最小化按钮,但对创建时最大化显示的MDI子窗体无效。可以看一下https://msdn.microsoft.com/zh-cn/library/system.windows.forms.form.controlbox(v=vs.85).aspx这个介绍。

18204733789
学分:5 LV1
2017-07-28
5L

也就是说mdi子窗体在使用controlbox时是有限制的,不能最大化,如果最大化,controlbox 将无效。可是当有菜单出现时,是看不到子窗体的controlbox 的,难道说是菜单挡住了子窗体的controlbox 的显示。无论如何只要菜单在,就能满足自己的需求,看来必须得加个菜单了,谢谢你的回复。

mdi.png


首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照