使用Singleton只建立一个窗口
2007-01-20 23:38
225 查看
有一个主窗口,上面有一个按钮,跳转到登陆窗口,现在要求只能由一个登陆窗口出现
这是登陆窗口的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace nature
{
public partial class LoginForm : Form
{
private LoginForm()//将构造方法定义为私有,这样可以杜绝外部的访问
{
InitializeComponent();
}
//定义一个静态字段 它是类的一个自引用,也就是它一旦执行就是一个LoginForm的对象 它也是私有的
static LoginForm myLoginForm = new LoginForm();
//定义一个静态,公有的属性,它来访问上面的静态字段,并且要能够返回一个LoginForm对象,所以它的类型是LoginForm
//可以被外部采用"LoginForm._LoginForm"的方式访问,
public static LoginForm _LoginForm
{
get
{
return myLoginForm;
}
set
{
myLoginForm = value;
}
}
//这个方法必须定义,不然当关闭第一个生成的地登陆窗口后,再次点击登陆(再次生成LoginForm)就会报错
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
{
LoginForm._LoginForm = new LoginForm();
}
}
}
然后在主窗口中的登陆按钮的Click事件中添加以下代码:
LoginForm myForm = LoginForm._LoginForm;
myForm.Show();
这是登陆窗口的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace nature
{
public partial class LoginForm : Form
{
private LoginForm()//将构造方法定义为私有,这样可以杜绝外部的访问
{
InitializeComponent();
}
//定义一个静态字段 它是类的一个自引用,也就是它一旦执行就是一个LoginForm的对象 它也是私有的
static LoginForm myLoginForm = new LoginForm();
//定义一个静态,公有的属性,它来访问上面的静态字段,并且要能够返回一个LoginForm对象,所以它的类型是LoginForm
//可以被外部采用"LoginForm._LoginForm"的方式访问,
public static LoginForm _LoginForm
{
get
{
return myLoginForm;
}
set
{
myLoginForm = value;
}
}
//这个方法必须定义,不然当关闭第一个生成的地登陆窗口后,再次点击登陆(再次生成LoginForm)就会报错
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
{
LoginForm._LoginForm = new LoginForm();
}
}
}
然后在主窗口中的登陆按钮的Click事件中添加以下代码:
LoginForm myForm = LoginForm._LoginForm;
myForm.Show();
相关文章推荐
- ASP.NET中使用IFRAME建立类Modal窗口
- 使用eclipse建立一个axis客户端测试
- 使用WIN32汇编语言实现一个基本windows窗口的过程分析
- 使用jQuery建立一个按字母顺序排列的友好的页面索引
- opengl离屏渲染(不需要和窗口绑定,仅当作一个可以渲染一张图片的API使用)+ opencv显示
- ISE14.7使用教程(一个完整工程的建立)
- 怎么使用response.write来做一个javascript的alert弹出窗口
- 建立一个使用.Net 2.0 MemberShip功能的标准例程(二)——配置篇
- ASP.NET中使用IFRAME建立类Modal窗口
- 使用PhotonServer和Unity建立一个棋牌类游戏实例(三)Unity客户端的注册请求和服务器的注册请求响应
- tempnam 使用 建立一个具有唯一文件名的文件
- Eclipse工具——TCP/IP Monitor使用2——如何在MyEclipse中建立一个代理服务器
- 使用新浪云SAE建立一个公网可访问的网页应用
- vue中使用splice()删除数组中的一个数据 弹出窗口提示。
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- 尝试使用IDEA建立一个gradle构建的工程,报错failed to set up SDK解决办法
- 使用JavaScript建立一个语法高亮输入框
- 有数据库apps权限,但是没有oracle EBS 帐户, 可以用以下方法建立一个用户使用:
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- Vivado2015.4使用教程(一个完成工程的建立)