.NET大型C/S系統可動態設置登陸窗口的實現參考

  若系統的主程序設置不對,就是系統的啓動窗體設置錯了,很容易致使系統退出時沒法從內存裏乾淨乾淨的退出,甚至在編譯開發時也會遇到一些沒必要要的問題,例如已經在內存裏佔用等,非要退出開發環境才能夠從新編譯調試的問題。ide

  最近把系統的主程序從新進行了調整,反覆測試確認已經修正了沒法從內存裏乾淨退出的問題,內心舒坦了不少了。測試


  在配置文件中的設置的主程序、登陸程序的設置參考。this

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



  工程項目參考圖以下spa

  主程序中的代碼以下調試

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


  登陸按鈕調用主窗體的事件參考部分code

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



下面是登陸窗體的接口定義部分orm

複製代碼
// ------------------------------------------------------------
// 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();
   }
}
複製代碼
相關文章
相關標籤/搜索