关于WinForm中Office样式的菜单

对于.net2003中提供的winform菜单,实在让人看起来有点 ,不得已自己想办法对MenuItem进行扩展,微软倒是对此类的扩展提供了很好的方法,在CodeProject倒是找到了几个好的例子,
http://www.codeproject.com/cs/menu/MhOffice2003Menus.asp
http://www.codeproject.com/cs/menu/MenuExtender.asp
扩展无非是继承MenuItem或继承IExtenderProvider 进行扩展,将MenuItemOwnerDraw设为True,然后重写OnDrawItemOnMeasureItem方法。
前一个是使用代码操作比较灵活,后一个则可以方便的进行可是化设计。
在这里我选择其中的OfficeMenuItem进行了重新封装,并进行了包装,使用Xml动态进行生成
程序界面看起来还是不错的

但接着问题来了,当是MDI应用时,当一个子窗体有菜单,而另一个没有菜单时,先打开有菜单的,后打开没有菜单,MDI主窗体菜单字体全没,跟踪是在主菜单MergeMenu没有触发OnDrawItem,刷新时也没有不触发OnDrawItem,,但没有使用OfficeMenuItem则正常,在网上找了不少的例子都出现如此的情况,难道是Microsoftbug?!!!不敢断言! ,怎么去解决?
.net2005
的菜单控件多好,简直超过.net2003多多!!
各位同仁有没有解决的办法!赐教!
我想把例子文件上传,这里不能上传吗?

posted on 2004-10-20 13:05  raininwind  阅读(2284)  评论(1编辑  收藏  举报

导航