標籤:.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
使用C#開發C/S架構進階版添加新項目執行個體