惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】
爱范儿
爱范儿
博客园 - 聂微东
美团技术团队
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
云风的 BLOG
云风的 BLOG
罗磊的独立博客
V
Visual Studio Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
V
V2EX
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - 蒋雷军

在2015中使用V12版本的ReportView控件,会导致winform窗体不能正常打开 小心DriveInfo类IsReady属性的较大延迟问题 Overloads和Overrides在元属性继承上的特性 如何使rdlc报表的表头在每一页都显示 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类 引用账户当前已锁定,且可能无法登录”--问题的解决方法(转载) win7访问windows server 2003服务器出现未知的用户名或者错误的密码(转载) NewRowNeeded和UserAddedRow事件以及RowsAdded的区别使用 TabControl控件中TabPage的显示和隐藏 参数计数不匹配,未处理System.Reflection.TargetParameterCountException 设定了自定义属性,来控制控件的宽度或高度,但数据会不正常 如何使一个你没有源代码的DLL文件变为强命名的DLL Windows 7如何限制运行特定的应用程序(转载) 怎么通过应用程序控制策略限制软件运行?(转载) 32位程序在64位电脑下运行, 如何让圆珠笔起死回生 密度采集调整 MIME类型大全 C# 构造函数如何调用父类构造函数或其他构造函数
结合RibbonControl设计MDI窗体,在子窗体关闭后,顶部显示额外...
蒋雷军 · 2013-06-12 · via 博客园 - 蒋雷军

结合RibbonControl设计MDI窗体,在子窗体关闭后,顶部显示额外的控制栏残影

如图:

 

这个问题,非常棘手,不知从何下手

翻遍了所有的相关属性,方法,并在网上找了很久,也没有答案

这是什么呢?为什么会出现这个呢?没办法,写测试代码:

经测试,这个只有子窗体被最大化后才会自动出现在MDI窗体中的工具栏,只是在DotNetBar中一般会被隐藏掉,但看来是隐藏出现了问题,使得在窗体的最上面依然显示了出来.而且由于DotNetBar的BUG,使得子窗体被关闭后,才会显示出来.

经过多次尝试研究,

发现如在窗体上加了MenuStrip菜单项,并设置窗体的MainMenuStrip为这个菜单项后,这个工具栏会和菜单项合并在一起,如图:

 

如果不在窗体上加MenuStrip菜单项,这个工具栏依然我行我素出现,

然后再加测试代码

    MsgBox(MenuStrip1.Items.Count)    显示打开子窗体后的菜单项数

发现这个菜单项数与打开的子窗体成正比关系,至此晃然大悟!

操,原来如此,如果有MainMenuStrip,则会往MainMenuStrip里加,如果没有,就自动生成一个MainMenuStrip类似的工具栏,然后加入子窗体的控制栏.

这个自动生成的类MainMenuStrip工具栏,通过Form.Controls属性还无法搜索到.让我绕了很大一个圈子

那行,就曲线救国吧,手动加入MenuStrip,设置成MainMenuStrip,然后设置Visible=false

终于天下太平了!