版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#c/s结构数据库系统框架详解(一)vjsdn自发布多文档界面(MDI)系统框架-C#完整版后又有了新想法,就是再写个C#版C/S结构系统框架。因时间关系断断续续写了很久。借周日机会,我将源代码整理好再写些说明文档发布出来,希望给大家带来学习机会。特别声明的是:C/S结构系统框架是优化和改编自几个大型系统,是经历过考验和实际应用的。希望大家好好珍惜。这个框架有很多学习要点,提醒大家不仅仅是下载代码而应该去好好研究,甚至阅读每一行代码每一个模块每一个细节!你学会了它也许将来作为一个优秀架构师需要设计同样一个系统时,这时你用上它,不是事半功倍么?另外,请尊重作者版权,写一个框架的确需要大量时间和
2、精力。程序员有个共性是写作永无止境,虽是深夜2点,但我们仍在思考,仍在写作!眼睛睡觉了但思维和创作动力仍在冗奋中,作为一个程序员的你,我说的对吗?有同样的感受吗?所以:转载时请注明本文来自易学网 HYPERLINK http:/www.vjsdn !言归正传,接下来讲解系统框架实现过程。首先看几个图对框架有个初步认识。1.登陆窗体准备登录窗体如通过验证用户,则加载MDI主窗体,留意图片内的动态消息:正在初始化用户界面,请稍候.登录窗体是多数应用程序的入口,在进入系统前需要用户验证。请看实现过程:2.MDI主窗体登录成功后显示MDI主窗体.图片为测试模块II的主界面.订单资料测试霍焕II(VS结
3、构程序框架-1DI主窗体系SE管理Login:程序:易学原创版本:141VJSDN,测试模块一测试模块工工膛)稱助并闭匕买4茶统设胃务测试窗体81试賀块一聚统管理关于程序lbar|養盂町工框架模块(ModuleWindow)ty易学原创测试窗怀用户权限测试按钮登录成功后显示MDI主窗体.图片为系统管理模块的主界面.3.关于程序/作者4解决方案SolutionExplorer从+Troperties+旦Referencesffl-口bina-dobj业务层BusinessLayerSolution*vjsdn_CS3La.yers?(9projects).須vjsdn.CS3LayersFram
4、evork.B-usiness二Soles:“首ITserRolG.cs歯tlLService.cs:濟muswT.u囂.jjvjsdn.CS3LayersFrrework.CorwhonrrcbpertiesReferences公共IS块Globals.csIfilsg.csMsg.csSingletoxiPrograjn.cs+i:=lProperties+Referencesa-Ql占况二objdalUser.cs数据层DataAccessLayerDataProvider.cs0.事vjsdn.CS3Layers_Franework.LibraryI:习IProperties7Refe
5、rences控件库崔DAssemblyfiloduleEn.try.csS固frmBase.cs(3圈frmModuleBase,cs酋LoadStat-us.cs酋ModuleLoader.cs电1Modulehlaiiager.cs;_皙SpLashLab.csSvjsdji.CS3L&yers.fraBevork.Iftin十国Tfoperties+9LeferencesMDI主禮序(3,_jLeso-urces酋AppEntry.cs(3固frnAboutVjsdii.csS)阖frmLogin.csE)圉frmMain.cs7酒Frogram.cs-.却vjsdn.CS3Layers
6、Framework.ModelsFiProper5Referencesillbin口obj皙TStudent.cs酋TTeacher.cs建TUser.cs甲十十十实体类rjsdn.CS3Layers_Franework.SytemModiile创Properties7Keferences核块:系姚设置揍块,_j|EGSources国frffiSysterTiMsiin.es国fkTiSystemOptions.e5-.Jjjvjsdn.CS3Layers_Franiework.TestModulwlStiw占皙ksseiTiblylnfo.cs模块;测试核块I用代码实现登录到加载MDI主窗体
7、.1.程序入口代码:0日代码staticclassProgramSTAThreadstaticvoidMain()/捕获系统所产生的异常。Application.ThreadException+=newThreadExceptionEventHandler(Application_ThreadException);SystemConfig.ReadSettings();/读取系统设置bllService.SetDataBasePath();/因用至UAccess,扌旨定个MDB文件Processinstance=SingletonProgram.GetRunningInstance();if(
8、instance!=null)Msg.Warning(程序已经运行.);if(instance!=null)&(!SystemConfig.CurrentConfig.AllowRunMultiInstance)SingletonProgram.HandleRunningInstance(instance);/Activeinstancereturn;Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);/注意:先打开登陆窗体,如登陆成功后再正式运行程序(MDI主窗体)/学会这
9、种写法。if(AppEntry.Login()Application.Run(AppEntry.MainForm);elseApplication.Exit();privatestaticvoidApplication_ThreadException(objectsender,ThreadExceptionEventArgse)Msg.ShowException(e.Exception);转载请注明来自易学网易学原创作品留意这段代码:if(AppEntry.Login()Application.Run(AppEntry.MainForm);elseApplication.Exit();调用Ap
10、pEntry类表态方法Login(),如登录成功,此时已经创建MainForm实例,则运行主窗体.AppEntry类是个公共类,仅定义登录方法及MDI主窗体变量.在登录窗体内用到该类.用户登录成功则创建frmMain实例.然后调用Application.Run(AppEntry.MainForm)方法.AppEntry类,应用程序入口类.国日代码publicclassAppEntrypublicstaticboolLogin()returnfrmLogin.TryLogin();privatestaticfrmMain_mainForm=null;publicstaticfrmMainMain
11、Formgetreturn_mainForm;set_mainForm=value;登录窗体源代码:S日代码publicpartialclassfrmLogin:Form/将构造器设为静态,防止外部创建实例privatefrmLogin()InitializeComponent();/打开登陆窗体,公开一个主静态方法/publicstaticboolTryLogin()frmLoginformnewfrmLogin();boolret=form.ShowDialog()=DialogResult.OK;returnret;privatevoidbtnLogin_Click(objectsend
12、er,EventArgse)/调用业务层登录方法boolret=newbllUser().Login(txtUser.Text,txtPwd.Text);if(ret)/登录成功创建主窗体AppEntry.MainFormnewfrmMain();/初始化主窗体(如加载模块,初始化用户界,加载系统参数)/在初始化同时login窗体会动态显示信息。AppEntry.MainForm.InitUserInterfacnewStatusLable(this.lblLoadingInfo);this.DialogResult=DialogResult.OK;this.Close();/关闭登陆窗体el
13、seMsg.Warnin登录失败,请检查用户名和密码!);privatevoidbtnCancel_Click(objectsender,EventArgse)this.Close();转载请注明来自易学网 HYPERLINK /%e6%98%93%e5%ad%a6%e5%8e%9f%e5%88%9b%e4%bd%9c%e5%93%81 /易学原创作品这里需要调用业务层执行用户登录.要学会将业务代码与界面代码分离./调用业务层登录方法boolret=newbllUser().Login(txtUser.Text,txtPwd.Text);if(ret)当登录成功,创建MDI主窗体实例,然后调用
14、实例方法InitUserlnterface.这时初始化主窗体./初始化主窗体(如加载模块,初始化用户界,加载系统参数)/在初始化同时login窗体会动态显示信息。AppEntry.MainForm.InitUserInterface(newStatusLable(this.lblLoadinglnfo);4.下面是MDI主窗体的代码:0日代码publicpartialclassfrmMain:Form/模块管理器实例privateModuleManager_ModuleManager;publicfrmMain()InitializeComponent();/初始化用户接口publicvoid
15、InitUserInterface(StatusLablesplash)this.SuspendLayout();splash.UpdateMessage正在初始化用户界面,请稍候.);_ModuleManager=newModuleManager(this,xtraTabControl1);/创建模块管理器_ModuleManager.LoadModules(splash);/加载可用模块splash.UpdateMessage正在加载工具栏.);_ModuleManager.CreateNavBarButtonsthis.navBarContro11,this.menuStripl);/仓
16、U建导航工具栏按钮splash.UpdateMessage正在加载用户模块.);splash.UpdateMessage正在初始化数据.);splash.UpdateMessage加载完毕.);this.ResumeLayout();/显示由参数指定的模块/publicvoidActiveModule(stringmoduleDisplayName)foreach(XtraTabPagepageinthis.xtraTabControl1.TabPages)if(page.Text.Equals(moduleDisplayName)xtraTabControl1.SelectedTabPage
17、=page;return;privatevoidbtnHelp_Click(objectsender,EventArgse)newfrmAboutVjsdn().ShowDialog();privatevoidbtnClose_Click(objectsender,EventArgse)this.Close();privatevoidbtnAbout_Click(objectsender,EventArgse)newfrmAboutVjsdn().ShowDialog();转载请注明来自易学网 HYPERLINK /%e6%98%93%e5%ad%a6%e5%8e%9f%e5%88%9b%e4%bd%9c%e5%93%81 /易学原创作品窗体类定义一个_ModuleManager变量,用于加载模块.请看ModuleManager详解.InitUserlnterface()方法是初始化主窗体方法.由frmLogin调用.转载请注明来自易学网 HYPERLINK /%e6%98%93%e5%ad%a6%e5%8e%9f%e5%88%9b%e4%bd%9c%e5%93%81 /易学原创作品续W全部链接:1.C/S结构数据库系统框架详解 HYPERLINK http:/www.vjsd http:/www.vjsd/bbs/bbsTopicDetails.aspx?pid=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026高考时事政治试题库(含答案)
- 2025年山东(专升本)语文历年真题及答案
- (2026)司法考试试卷及答案
- 冬天皮肤痒到睡不着 - 干燥症课件
- 厚植爱国底色绽放青春光芒主题班会课件
- 2026年物流系统设计与优化工程师试题及答案
- 2026年新能源电力安全培训试题(附答案)
- 2026年事业单位继续教育考试试题及答案
- 2026年乡镇水利执法考试题附答案
- 2026年事业单位工勤岗位锅炉操作工高级工试题库及答案
- 2024年肺结核试题培训及答案
- 用电安全与人走断电规范
- 建筑装饰装修室内空间照明设计应用标准
- 《神经退行性疾病》课件
- 消防设施基本情况表
- GEVO型柴油机总组装与试验江利国课件
- 贵州省考试院2025年4月高三年级适应性考试化学试题及答案
- 2025年郑州铁路职业技术学院单招职业适应性测试题库必考题
- 水库施工便道合同
- 质量文化导论(华东理工大学)知到智慧树章节答案
- NB-T47023-2012长颈对焊法兰
评论
0/150
提交评论