天天看點

.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();

        /// 初始化服務

        void InitService();

        /// 檢查菜單

        void CheckMenu();

    }

 本文轉自jirigala_bao 51CTO部落格,原文連結:http://blog.51cto.com/jirigala/809493

繼續閱讀