标签:.com reflect 替换 this mpi sys interface 创建项目 over
操作步骤:
1、新建一个项目CSFramework3.test,在CSFramework3.test项目下新建一个FormMan窗口(此时不需要继承)。
2、按F7打开类,替换一下引用
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using CSFramework3.Interfaces;
using CSFramework.Library;
using CSFramework.Common;
此时下面三个模块会报错,因为框架窗口没有引用这三个模块。如图添加引用
CSFramework3.Interfaces 共用 系统接口模块
CSFramework.Common 共用 公共模块
CSFramework.Library 不共用 基类库模块
3、继承模块主窗体基类,把Form换成frmModuleBase
public partial class FormMan : frmModuleBase
如果出现设计器报错,删除FromMan.Designer中报错的代码,因为继承窗口关系没有自动生成代码。如图
4、打开设计页面,在工具里搜索MenuStrip 添加一个菜单控件,保存。(如果以上操作没成功)
5、直接使用继承窗口创建项目。(删除没有成功的项目)
6、打开设计页面,在工具里搜索MenuStrip 添加一个菜单控件,保存。如图
图中的测试按钮随便复制一个过来。menustrip是添加的菜单。
7、下来照样把上面的引用替换。在初始方法中加入以下红色的代码。
public frmDocumentManagementMan()
{
InitializeComponent();
_ModuleID = CSFramework3.Interfaces.ModuleID.DocumentManagement; //设置模块编号
_ModuleName = ModuleNames.DocumentManagement;//设置模块名称
menuStrip1.Text = ModuleNames.DocumentManagement; //与AssemblyModuleEntry.ModuleName定义相同
this.MainMenuStrip = this.menuStrip1;
this.SetMenuTag();
}
正常情况下SetMenuTag();和DocumentManagement会报错,因为没有实现它的方法。继续加入红色代码,
DocumentManagement报错是没有设置菜单名称,暂时不管。
public override MenuStrip GetModuleMenu()//为窗口提供菜单系统
{
return this.menuStrip1;
}
private void SetMenuTag()
{
menuOperationMain.Tag = new MenuItemTag(MenuType.ItemOwner, (int)CSFramework3.Interfaces.ModuleID.PurchaseModule, AuthorityCategory.NONE);
btnSales.Tag = new MenuItemTag(MenuType.DataForm, (int)CSFramework3.Interfaces.ModuleID.OperationPlan, AuthorityCategory.MASTER_ACTION);
}
可能menuOperationMain和btnSales会报错,改成对应的name,菜单name和按钮name 设计器属性找。
8、在类中找到ModuleID 按F12
设置菜单ID和名称,最后一个不要加逗号。复制tests这个名称,打开类fromman。把报错的DocumentManagement换成tests
9、找到这个类打开,修改里面的引用和代码。
替换引用
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using CSFramework.Library;
using CSFramework3.Interfaces;
using CSFramework.Core;
替换注意红色部分
[assembly: AssemblyModuleEntry(ModuleID.tests, ModuleNames.tests, "CSFramework3.test.FormMan")]//这行需要手动添加
[assembly: AssemblyTitle("CSFramework3.test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("CSFramework3.test")]
[assembly: AssemblyCopyright("Copyright ? Microsoft 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
10、右键点击项目属性。
注意红色部分。联系QQ78474580
标签:.com reflect 替换 this mpi sys interface 创建项目 over
原文地址:http://www.cnblogs.com/debugnotes/p/7218863.html