首页 - 技术 - vs2010登录 窗体网站_【MFC-10】VS2010MFC基于对话框程序的登录窗口实现

vs2010登录 窗体网站_【MFC-10】VS2010MFC基于对话框程序的登录窗口实现

2023-09-28 23:28

新手菜鸟,把用vs2010开发时,如何在用户登录成功后,载入程序主窗口,并隐藏登录窗口。

先贴两张图

登录窗口

登陆成功提示

成功后,跳转到主程序窗口

下面,说说如何制作这个程序。

修改登录窗口属性

修改默认的Form1的属性,把Form1的text属性改为“请登录后使用”,这个是登录窗口的标题框,你想写什么都行。

然后把Form1的(name)属性,改为Login,这个相当于是登录窗口的ID,要求英文或数字即可。

然后在登录窗口里添加控件,用户名、密码、登录按钮等。

控件NAMETEXTLabelLabel1用户名TextBoxTextBox_UserName?LabelLabel2密码TextBoxTextBox_PassWord?ButtonButton_Login登录

编辑登录按钮代码

因为教程主要是为了说明如何跳转,所以用户名和密码都是简单的判断字符,没有连接数据库。

private void button1_Click(object sender, EventArgs e)

{

string WinUserName = textBox_UserName.Text.Trim();

string WinPassWord = textBox_PassWord.Text.Trim();

if (WinUserName.Equals("") || WinPassWord.Equals(""))

{

www.gsm-guard.net("用户名或密码不能为空!");

return;

}

else if (WinUserName.Equals("admin") && WinPassWord.Equals("admin"))

{

www.gsm-guard.net("登陆成功!");

//跳转代码写在此处

this.DialogResult = DialogResult.OK;

this.Dispose();

this.Close();

}

else

{

www.gsm-guard.net("用户名或密码错误!");

}

}

新增并修改主窗口属性

右键解决方案资源管理器—添加—新建项

然后选择Windows窗体,名字改为Main(改不改都行),然后点击添加。

和上边同样的方法,修改Main窗口的text属性,主要是为了辨识。

在Main窗口中,新增一个Label,用于辨识。

修改主程序代码

在解决方案资源管理器中找到programma.cs,在Main函数中,添加代码:

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

//www.gsm-guard.net(new Form1_Login());

Login login = new Login();

//界面切换

login.ShowDialog();

if (login.DialogResult == DialogResult.OK)

{

login.Dispose();

www.gsm-guard.net(new Main());

}

else if (login.DialogResult == DialogResult.Cancel)

{

login.Dispose();

return;

}

}

启动程序,并测试效果

(1)不输入用户名和密码,单击登录;

(2)正确输入用户名,错误输入密码,单击登录;

(3)正确输入用户名和密码,单击登录;

(4)单击提示框确定按钮,查看跳转情况。

用户名或者密码错误的图

用户名和密码正确的图

登陆成功,点击确定的跳转图

最后的结束语

至此,这个程序就做完了,功能是实现了,但是具体的美化,或者是真正的用户名密码匹配就不在这里说了。

希望对你有所帮助吧~~~

一、开发环境

1、VS2010;

2、C++ / MFC;

二、登录窗口设计示例

1、新建基于对话框的MFC项目,命名为“UserLogin”;

2、资源视图中插入一个Dialog,修改ID为:IDD_LOGIN_DIALOG,标题修改为登录对话框,并添加控件,结果如图1所示;

图1

3、创建登录对话框类:CLoginDlg,添加控件变量如图2所示;

图2

4、将对话框类头文件添加到UserLogin.cpp;

// UserLogin.cpp : 定义应用程序的类行为。

//

#include "stdafx.h"

#include "UserLogin.h"

#include "UserLoginDlg.h"

#include "LoginDlg.h"

5、修改UserLogin.cpp函数BOOL CUserLoginApp::InitInstance()如下:

BOOL CUserLoginApp::InitInstance()

{

// 如果一个运行在 Windows XP 上的应用程序清单指定要

// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,

//则需要 InitCommonControlsEx()。否则,将无法创建窗口。

INITCOMMONCONTROLSEX InitCtrls;

InitCtrls.dwSize = sizeof(InitCtrls);

// 将它设置为包括所有要在应用程序中使用的

// 公共控件类。

InitCtrls.dwICC = ICC_WIN95_CLASSES;

InitCommonControlsEx(&InitCtrls);

CWinApp::InitInstance();

AfxEnableControlContainer();

// 创建 shell 管理器,以防对话框包含

// 任何 shell 树视图控件或 shell 列表视图控件。

CShellManager *pShellManager = new CShellManager;

// 标准初始化

// 如果未使用这些功能并希望减小

// 最终可执行文件的大小,则应移除下列

// 不需要的特定初始化例程

// 更改用于存储设置的注册表项

// TODO: 应适当修改该字符串,

// 例如修改为公司或组织名

SetRegistryKey(_T("应用程序向导生成的本地应用程序"));

// 登录对话框,系统登录

CLoginDlg loginDlg;

if(loginDlg.DoModal() == IDOK)

{

CUserLoginDlg dlg;

m_pMainWnd = &dlg;

INT_PTR nResponse = dlg.DoModal();

if (nResponse == IDOK)

{

// TODO: 在此放置处理何时用

// “确定”来关闭对话框的代码

}

else if (nResponse == IDCANCEL)

{

// TODO: 在此放置处理何时用

// “取消”来关闭对话框的代码

}

}

else

{

return FALSE;

}

//CUserLoginDlg dlg;

//m_pMainWnd = &dlg;

//INT_PTR nResponse = dlg.DoModal();

//if (nResponse == IDOK)

//{

// // TODO: 在此放置处理何时用

// // “确定”来关闭对话框的代码

//}

//else if (nResponse == IDCANCEL)

//{

// // TODO: 在此放置处理何时用

// // “取消”来关闭对话框的代码

//}

// 删除上面创建的 shell 管理器。

if (pShellManager != NULL)

{

delete pShellManager;

}

// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,

// 而不是启动应用程序的消息泵。

return FALSE;

}

6、登录对话框添加“登录按钮”消息响应;

void CLoginDlg::OnBnClickedOk()

{

// TODO: 在此添加控件通知处理程序代码

this->UpdateData(true);

if(this->m_UserName.IsEmpty() || this->m_UserPassword.IsEmpty())

{

MessageBox(_T("用户名或密码不能为空,请重新输入!"),_T("用户登录信息"),MB_ICONINFORMATION);

return;

}

else if(this->m_UserName == "Admin" && this->m_UserPassword == "12345")

{

CDialogEx::OnOK();

}

else

{

MessageBox(_T("用户名或密码不正确,请重新输入!"),_T("登录失败"),MB_ICONERROR);

return;

}

}

7、生成 ---> 生成解决方案,运行即可测试。

备注:

1)输入密码处的编辑框修改属性:“Password”为“True”;

2)实现注销登录:在主对话框中添加“注销”按钮及其消息响应;

void CUserLoginDlg::OnBnClickedButtonLogout()

{

// TODO: 在此添加控件通知处理程序代码

ShowWindow(SW_HIDE);

CLoginDlg loginDlg;

loginDlg.m_LoginType = 3;

if (IDOK == loginDlg.DoModal())

{

Sleep(100);

ShowWindow(SW_SHOW);

}

else

{

PostQuitMessage(0);

}

}

3)用户名和密码登录信息可以采用数据库形式存储,具体可参考本人其他微博文章内容。

本篇文章介绍了C#窗体的数据库连接及登录功能的实现

工具或平台:VS2010、sqlserver2012

1.创建完窗体后,点击数据,选择添加新数据源

2.选择数据库

3.选择数据集

4.新建连接-Microsoft SQL Server,添加完测试一下

5.添加数据库-注意把连接字符串部分复制一下,一会儿要用的

6.保存连接字符串到配置文件中

7.选择需要用数据库的那些部分,由于我的工程较小,仅选择了表,读者根据需要自行添加

8.引入与数据库相关的命名空间(using System.Data.SqlClient;//加入数据库命名空间)

9.添加两个文本框、标签及一个按钮、一个pannel容器,修改属性

10.添加密码的填充字符

private void textBox2_TextChanged(object sender, EventArgs e)

{

this.textBox2.PasswordChar = '*';

}

11.添加按钮点击事件

private void button1_Click(object sender, EventArgs e) //登录按钮点击事件

{

//获取文本框中的值

string userid = this.textBox1.Text;

string password = this.textBox2.Text;

if (userid.Equals("") || password.Equals(""))//用户名或密码为空

{

www.gsm-guard.net("用户名或密码不能为空");

}

else//用户名或密码不为空

{

string connectionString = "Data Source=SC-201609191651;Initial Catalog=BigWork;Persist Security Info=True;User ID=sa;Password=qwe1314521";

SqlConnection SqlCon = new SqlConnection(connectionString); //数据库连接

www.gsm-guard.net(); //打开数据库

string sql = "Select * from users where userid='" + userid + "' and userpwd='" + password + "'";//查找用户sql语句

SqlCommand cmd = new SqlCommand(sql,SqlCon);

cmd.CommandType = CommandType.Text;

SqlDataReader sdr;

sdr = cmd.ExecuteReader();

if (www.gsm-guard.net()) //从结果中找到

{

www.gsm-guard.net("登录成功", "提示");

}

else

{

www.gsm-guard.net("用户名或密码错误", "提示");

return;

}

}

panel1.Visible = false;

}

12.运行结果

补充知识:c#windowform连接数据库的两种方法

一、 纯操作实现

第一步:数据库操作

1、打开SqlServer2005的企业管理器,如果当前运行的不是local服务器,则将其删除,接着新建SqlServer注册,添加local,实现注册。

2、右击local下的数据库,选择所有任务,再选择附加数据库,将会弹出附加数据库窗口,选择你将要附加的数据,数据库名及数据库用户名,然后确定,附加成功。

注意:当数据库用完后,需要分离数据库,然后将其保存。右击数据库—所有任务—分离数据库,则完成。

第二步:Vistualstudio中操作

1、 新建项目,选择windows窗体应用程序。

2、 在form1窗体中,添加工具箱—数据—DataGridview

3、 选择DataGridview上边框的三角符合,选择选择数据源下添加项目数据源,然后选择数据库,下一步选择新建连接下的SqlServer,然后继续,弹出添加连接窗口,在该窗口中的服务器名下填写英文点号(.),登陆到服务器选择使用SqlServer身份验证,填写数据库用户名和密码,然后选择你的数据库,然后测试连接,如果成功则说明连接成功。

4、 在VistualStudio中运行你的文件,这时form1中添加的DataGridview中会出现逆的数据表。

二、代码实现

1、 新建项目,选择windows窗体应用程序。

2、 在form1窗体中,添加工具箱中数据中的—DataGridview

3、双击,form1窗体,首先在form1的头部添加两条:using www.gsm-guard.net;using System.data.Sqlclient 。然后再form1_load()事件中编写如下代码:

String constr=”data source=.;intial catalog=student;user id=sa;password=”;

//连接数据库服务器

SqlConnection conn=new SqlConnection(constr);

//SQL连接类的实例化

www.gsm-guard.net();

//打开数据库

www.gsm-guard.net(“连接成功!”);

//弹出窗口,用于测试数据库连接是否成功。

String sql=“select * from student”;

//执行的查询语句

SqlDataAdapeter find=new SqlDataAdapter(sql,conn);

// 创建DataAdapter数据适配器实例,SqlDataAdapter作用是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据

DataSet save=new DataSet();

//创建DataSet实例

find.Fill(save,"wu");

// 使用DataAdapter的Fill方法(填充),调用SELECT命令 fill(对象名,"自定义虚拟表名")

DataGridView1.Datasource=save.Tables[0];

// 向DataGridView1中填充数据

conn.close();

//关闭数据库

以上这篇C#窗体-数据库连接及登录功能的实现案例就是小c#教程编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持