CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

.NET WinForm菜单合并出错的问题

楼主XinXinRen(星星)2006-03-01 14:57:59 在 .NET技术 / C# 提问

环境:  
      Windows2000Professional,FrameWork1.1  
   
  一个MDI主窗体mainForm,定义了2个MainMenu,分别为把M1,M2。在   M2上编写代码打开有Menu的Mdi子窗体mdiChildForm。  
  在主窗体MainForm的   FormLoad中:  
      this.Menu   =   M1;  
      this.Menu.MergeMenu(   M2   );  
  M2的点击事件:  
      mdiChildForm   cf   =   new   mdiChildForm();  
      cf.mdiParent   =   this;  
      cf.Show();  
       
  点击M2中的菜单项打开mdiChildForm时,会将mdiCHildForm的菜单合并到mainForm的菜单上,这没问题。但是当再次打开mdiChildForm时,出错,“提示未将对象引用设置到对象的实例”。  
      经调试,是在   mdiChildForm.mdiParent   =this;   的时候出错,  
        StackTrace"        
        at   System.Windows.Forms.MenuItem.get_MergeType()^p       at    
        System.Windows.Forms.Menu.MergeMenu(Menu   menuSrc)^p       at    
        System.Windows.Forms.MenuItem.MergeMenu(MenuItem   itemSrc)^p       at    
        System.Windows.Forms.MenuItem.MergeMenu()^p       at    
        System.Windows.Forms.Menu.MergeMenu(Menu   menuSrc)^p       at    
        System.Windows.Forms.Form.get_MergedMenu()^p       at    
        System.Windows.Forms.Form.UpdateMenuHandles()^p       at    
        System.Windows.Forms.Form.MenuChanged(Int32   change,   Menu   menu)^p       at    
        System.Windows.Forms.Form.InvalidateMergedMenu()^p       at    
        System.Windows.Forms.Form.set_MdiParentInternal(Form   value)^p       at    
        System.Windows.Forms.Form.set_MdiParent(Form   value)^p       at    
        PanFis.UI.Portal.CreateUserMenu.MenuItem_Click(Object   sender,   EventArgs   e)   in   d:\\工作   \\产品   _接口平台\\代码\\panfisclientcomponents\\panfis.ui.portal\\createusermenu.cs:line   160"string  
   
  更为神奇的是:  
      (1)同样的程序在windows2003Server(同样是Fx1.1)上没有错误!  
      (2)在Wind2KProfess   上,如果把Form_Load中的脚本改为:  
            this.Menu   =   M2;  
            this.Menu.MergeMenu(   M1   );     //注意M1和M2反过来用。  
            就一切   OK;  
  问题点数:60、回复次数:7Top

1 楼XinXinRen(星星)回复于 2006-03-01 15:42:07 得分 0

急!是高手就顶一下。随时在线等待,答对立马给分。Top

2 楼XinXinRen(星星)回复于 2006-03-02 12:30:26 得分 0

错了,  
  (2)在Wind2KProfess     上,如果把Form_Load中的脚本改为:      
                    this.Menu     =     M2;      
                    this.Menu.MergeMenu(     M1     );         //注意M1和M2反过来用。      
                    就一切     OK;      
  反过来也是不行!  
  Top

3 楼diandian82(点点(nothing))回复于 2006-03-02 12:47:06 得分 0

我记得如果是子窗体的话,不用merge不就自动把本身的菜单加载道主窗体上了么?Top

4 楼Samen168(Code to coding)回复于 2006-03-02 12:52:58 得分 0

呵呵,MDI只要设置是否自动合并就可以的Top

5 楼XinXinRen(星星)回复于 2006-03-02 18:56:32 得分 0

哦,可能我没有说清楚。是这样子的,当MDI主窗体打开自身带有菜单的MDI子窗体的时候,能把子窗体的菜单合并到主窗体上,这没有错误,问题是,如果我主窗体的菜单本身是由2个菜单合并生成的,如下面的代码所示(假设mainMDIForm就是我主MDI窗体的名字):  
      mainMDIForm.Menu   =   M1;  
      mainMDIForm.Menu.MergeMenu(   M2   );  
  这时,在主窗体中自身带有菜单的子窗体,第一次打开没问题,子窗体的菜单可以合并到主窗体上,和预期的一样,但是再次打开自身带有菜单的子窗体时,问题就来了,出现了上面说达到的异常,也就是在.NET自动合并菜单时出了错。  
  不知道我这次说明白了没有。谢谢!  
  Top

6 楼XinXinRen(星星)回复于 2006-03-04 14:24:11 得分 0

终于查到了,是   .NET   FX1.1的Bug。  
  http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B890328  
  Top

7 楼XinXinRen(星星)回复于 2006-03-04 14:50:01 得分 0

打上   FX   SP1解决了   :)Top

相关问题

  • PFC菜单出错.
  • 去掉菜单项出错?
  • .net 安装 出错
  • 我的菜单消息映射出错了!
  • 弹出式菜单出错!!!!!!!!!!!!!!请教各位!!!!!!
  • 右键菜单出错请高手们帮忙解决一下
  • .net安装出错!急!!
  • 急!安装.net出错?
  • ASP。NET中,引用出错?
  • 安装.net出错,救命!!!!!!!!!!

关键词

  • .net
  • 代码
  • 窗体
  • mergemenu
  • mdichildform
  • 菜单
  • 主
  • 出错
  • menu
  • mainmdiform

得分解答快速导航

  • 帖主:XinXinRen

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo