.NET大型C/S系统可动态设置登录窗口的实现参考

   若系统的主程序设置不对,就是系统的启动窗体设置错了,很容易导致系统退出时无法从内存里干净干净的退出,甚至在编译开发时也会遇到一些不必要的问题,例如已经在内存里占用等,非要退出开发环境才可以重新编译调试的问题。

   最近把系统的主程序重新进行了调整,反复测试确认已经修正了无法从内存里干净退出的问题,心里舒坦了很多了。

 

   在配置文件中的设置的主程序、登录程序的设置参考。

     <!--  登录窗体  -->
    
< add key = " LogOnAssembly "  value = " DotNet.WinForm.LogOn " />
    
< add key = " LogOnForm "  value = " FrmLogOn " />
    
< add key = " MainForm "  value = " SDIMainForm " />

 

 

   工程项目参考图如下

   主程序中的代码如下

private   void  MainForm_Load( object  sender, EventArgs e)
{
    Form logOnForm 
=  CacheManager.Instance.GetForm(BaseSystemInfo.LogOnAssembly, BaseSystemInfo.LogOnForm);
    logOnForm.ShowDialog(
this );
}

 

   登录按钮调用主窗体的事件参考部分

if  ( ! BaseSystemInfo.LogOned)
{
    Form mainForm 
=   this .Owner;
    ((IBaseMainForm)mainForm).InitService();
    ((IBaseMainForm)mainForm).InitForm();
    mainForm.Show();
}

 

 

下面是登录窗体的接口定义部分

// ------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd. 
// ------------------------------------------------------------

using  System;

namespace  DotNet.WinForm.Utilities
{
    
///   <summary>
    
///  IBaseMainForm
    
///  主窗口的接口
    
///  
    
///  修改纪录
    
///
    
///         2008.10.29 版本:1.1 JiRiGaLa 重新命名。
    
///         2008.05.04 版本:1.0 JiRiGaLa 创建。
    
///         
    
///  版本:1.0
    
///
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2008.05.04 </date>
    
///   </author>  
    
///   </summary>
     public   interface  IBaseMainForm
    {
        
///   <summary>
        
///  初始化窗体
        
///   </summary>
         void  InitForm();

        
///   <summary>
        
///  初始化服务
        
///   </summary>
         void  InitService();

        
///   <summary>
        
///  检查菜单
        
///   </summary>
         void  CheckMenu();
    }
}

 

 

 

转载于:https://my.oschina.net/iwenr/blog/227737

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值