打印本文 打印本文 关闭窗口 关闭窗口
一个简单的基于XML的模块集成框架(3)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1716  更新时间:2009/4/23 11:18:46  文章录入:mintao  责任编辑:mintao
ct obj = null;
   Type tp = Type.GetType(asmname);
   if(tp != null)
   {
   obj = Activator.CreateInstance(tp);
   }
   else
   {
   throw new Exception("加载程序的时候出错,请检查程序(dll,exe)是否存在或者类型是否正确。");
   }
  
  
   //检查是否是Form类
   if((obj == null) | !(obj is Form))
   {
   throw new Exception(Resources.StringNotForm);
   }
  
   Form frm = (obj as Form);
  
   //检查打开的第一个窗口是否是MDIFORM
   if(Application.OpenForms[0].IsMdiContainer)
   {
   //作为MDICHILDFORM
   frm.MdiParent = Application.OpenForms[0];
   }
   //加载窗体
   frm.Show();
  
  
   }
   }
  
   /**//// <summary>
   /// 菜单单击事件
   /// </summary>
   /// <param name="sender"></param>
   /// <param name="args"></param>
   private void OnPluginClick(object sender, EventArgs args)
   {
   OfficeMenuItem item = (OfficeMenuItem)sender;
   MenuClass mc = (MenuClass) item.Tag;
   if ((item.Text == "退出") | (item.Text == "EXIT"))
   {
   OnExitClick(sender, args);
   return;
   }
   OpenForm(mc);
   }
  
   }
  这里面用到了delegate,最重要的函数是加载菜单的函数和OnPluginClick函数。
  
  使用这个框架可以动态增加任意的层次的模块。
  
  微软的CAB 使用Resigster site方式来增加模块,感觉不是很方便。
  
  如果您对这个框架感兴趣可以邮件 piyanrong@gmail.com。
  
    

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口