1、MDI主窗体点击弹出其所属的子窗体(MDIMainForm窗体下的代码示例)
private void barBtnProjectType_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
//客户代码,只需要管调用,不需要管实现,符合封闭-开放原则
ProjectTypeForm.GetInstance().Show();
}
2、子窗体声明一个静态的自己类型的变量(ProjectTypeForm窗体下的代码示例)
//声明一个静态的自己类型的变量
private static ProjectTypeForm _objFrmChildren = null;
3、声明静态方法代替构造函数(ProjectTypeForm窗体下的代码示例)
//外部代码通过这个方法来获取 类 的实例 以代替类构造函数功能
public static ProjectTypeForm GetInstance()
{
//判断实例是否存在,不存在则调用构造方法
if (_objFrmChildren == null || _objFrmChildren.IsDisposed)
{
_objFrmChildren = new ProjectTypeForm();
_objFrmChildren.MdiParent = MDIMainForm.ActiveForm;
}
return _objFrmChildren;
}
4、注意单例模式下,子窗体的构造函数应设置为私有的(ProjectTypeForm窗体下的代码示例)
//单例模式应用
private ProjectTypeForm()
{
InitializeComponent();
}
//构造方法改为私有,使外部代码无法通过 new 来实例化
private void ProjectTypeForm_Load(object sender, EventArgs e)
{
}
单例模式 是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。