若系統的主程式設定不對,就是系統的啟動窗體設定錯了,很容易導緻系統退出時無法從記憶體裡幹淨幹淨的退出,甚至在編譯開發時也會遇到一些不必要的問題,例如已經在記憶體裡占用等,非要退出開發環境才可以重新編譯調試的問題。
最近把系統的主程式重新進行了調整,反複測試确認已經修正了無法從記憶體裡幹淨退出的問題,心裡舒坦了很多了。
在配置檔案中的設定的主程式、登入程式的設定參考。
<!-- 登入窗體 -->
<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