一:win form登录机制的实现
main窗体为应用程式主窗体,login为登录窗体。均为sdi窗体。
两种实现方式如下:
1、应用程式入口放在login窗体,在login窗体实现登录机制,验证通过则创建main窗体的实例,并将自身隐藏。
具体实现:
///step1:验证登录
///step2:通过
this.hide();
omain.show();
虽然可以实现登录机制,但是login窗体并没有释放掉,而是被隐藏掉,内存资源未有效利用。这种方式其实是不可取的。
2、应用程式入口放在main窗体,在main函数中创建login窗体的实例,login窗体完成登录验证,返回main窗体,程式继续执行。需要注意的是login窗体只有验证通过时返回值才为dialogresult.ok,其余时返回dialogresult.none。这样在main窗体就可以根据返回值判断是否创建main窗体的实例。
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[stathread]
static void main()
{
frmlogin login = new frmlogin();
login.showdialog();
if(login.dialogresult.equals(dialogresult.ok))
{
login.close();
application.run(new frmmain());
}
}
二:利用imagelist作为resource的载体
win form的程式,外部文件是比较烦人的事情,这里采用resource将外部图片文件加载到程式中。而imagelist是一个不错的选择,使用简单。
具体实现:
///step1:将图片在可是模式下加载到imagelist中。
///step2:程式中可以采用this.imglstresource.images[index]的方式获取其中的image对象。
新闻热点
疑难解答