新手菜鸟,把用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#教程编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持