.NET大型C/S系统可动态设置登录窗口的实现参考
2011-01-10 11:26 通用C#系统架构 阅读(1971) 评论(2) 编辑 收藏 举报若系统的主程序设置不对,就是系统的启动窗体设置错了,很容易导致系统退出时无法从内存里干净干净的退出,甚至在编译开发时也会遇到一些不必要的问题,例如已经在内存里占用等,非要退出开发环境才可以重新编译调试的问题。
最近把系统的主程序重新进行了调整,反复测试确认已经修正了无法从内存里干净退出的问题,心里舒坦了很多了。
在配置文件中的设置的主程序、登录程序的设置参考。
<add key="LogOnAssembly" value="DotNet.WinForm.LogOn"/>
<add key="LogOnForm" value="FrmLogOn"/>
<add key="MainForm" value="SDIMainForm"/>
工程项目参考图如下
主程序中的代码如下
{
Form logOnForm = CacheManager.Instance.GetForm(BaseSystemInfo.LogOnAssembly, BaseSystemInfo.LogOnForm);
logOnForm.ShowDialog(this);
}
登录按钮调用主窗体的事件参考部分
{
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();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2010-01-10 最近辞退了一个实习生,心情好了很多,差点儿犯了曾有过的同样的错误,趁早让你走人一切就正确了