Smobiler实现美观登录界面——C# 或.NET Smobiler实例开发手机app(二)

版权声明:欢迎转载,转载请注明出处哦! https://blog.csdn.net/qq_41647999/article/details/83589001

目录

一、 本文目标

二、 准备工作

1、 数据库

2、 材料

三、 界面布局

1、设置控件的属性值

(1) 输入框

(2) 图片属性

(3) HandElectricity的标题的label属性

(4)登录按钮

扫描二维码关注公众号,回复: 3887751 查看本文章

(5)版权申明

 (6) 记住密码

2、 事件代码

(1) 登录按钮

(2)  使用验证码登录

(3) 其它的按钮


一、 本文目标

初级版,请看我的上一篇博文自行补脑哦,这里就不在赘述了。

二、 准备工作

1、 数据库

本文采用的是SqlSever2008的数据库,暂时的数据表设计如下:

表名为:HE_User       用于保存用户的账号密码等信息,其它的表现在还用不上,暂时不讲。

下表为登录的账号密码,这里会涉及到一个知识点,就是如何设置sqlsever的id自增。

这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1 。下面是我创建id字段的代码。

id int IDENTITY(1,1) not null CONSTRAINT pk_id PRIMARY KEY

 

2、 材料

一张背景图片,一张背景透明的LOGO。

在ElectricityAPP下新建窗体,命名为frmLogin

把背景图命名为bg,LOGO的图片命名为LOGO(命名不要为中文都行)放到Image这个文件夹里面。

三、 界面布局

1、设置控件的属性值

再次基础操作返回上一篇博客视频讲解。这里主要讲一些细节和美观的问题。

先往界面中拖入一个panel设置dock属性为fill。

(1) 输入框

输入框的name设置为txtUerName和ytxtPassword(这是账号和密码的输入框)。

(2) 图片属性

(3) HandElectricity的标题的label属性

(4)登录按钮

(5)版权申明

Text的内容为:Copyright ©2018-2018 DJun. All rights reserved.

 (6) 记住密码

这里只能帮到这里了。要我的素材的话,你可以评论或邮箱[email protected]联系我发给你。

2、 事件代码

(1) 登录按钮

我在这里写一个函数IsConnectDB来返回登录状态的。

登录按钮的Press事件:

a. 需要判断是否勾选保存密码的checkbox。

b. 连接数据库(我使用的是Sqlsever数据库,这里需要打开数据库远程连接的权限,把这个问题解决了在执行代码测试!)

 /// <summary>
        /// 验证用户名和密码
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="passWord"></param>
        private int IsConnetDB(string userName, string passWord)
        {
            try
            {
                SqlConnection conn = new SqlConnection("server=服务器的ip地址;database=HandElectricity; uid=sa;pwd=123");
                conn.Open();
                string sqlcmd = "select count(*) from [HE_User] where username= '" + userName + "' and password='" + passWord + "'";
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = sqlcmd;
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                conn.Close();
                if (result == 1)
                {
                    //登录成功
                    MessageBox.Show("登录成功!");
                    //frm_Main fm = new frm_Main();
                    //Show(fm);
                }
                else
                {
                    MessageBox.Show("账号或密码错误!");
                    return 0;
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
            return 1;
        }
        private void btnLogon_Click(object sender, EventArgs e)
        {
            try
            {
                string userName = txtUserName.Text.Trim();
                string passWord = txtPassword.Text.Trim();
                if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(passWord))
                {
                    throw new Exception("用户名或密码不能为空!");
                }

                int result = IsConnetDB(userName, passWord);

                LoadClientData(MobileServer.ServerID + "user", userName);
                //登录成功才记住密码
                if (result == 1 && chkRememberPwd.Checked == true)
                {
                    LoadClientData(MobileServer.ServerID + "pwd", passWord);
                }

            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }

(2)  使用验证码登录

如果需要真正的验证码,需要另行购买短信的API接口。

这里把发送了的手机号码保存在了一个记事本里面,按理来说这是需要加密处理的,我这里没有加密。

 private void btnVerify_Click(object sender, EventArgs e)
        {
            try
            {
                string userID = txtUserName.Text.Trim();
                if (userID.Length != 11)
                {
                    MessageBox.Show("请输入正确的手机号码!");
                }
                else
                {
                    FileStream fs;
                    if (File.Exists("./logMobile.txt"))
                    {
                        fs = new FileStream("./logMobile.txt", FileMode.Open);
                    }
                    else
                    {
                        fs = new FileStream("./logMobile.txt", FileMode.CreateNew);
                    }
                    StreamWriter sw = new StreamWriter(fs);
                    sw.WriteLine(userID);
                    fs.Close();
                    MessageBox.Show("验证码发送成功,注意接收!");
                }
               
            }

(3) 其它的按钮

都是打开其它的窗体,手机上自带返回功能和窗体覆盖功能的。

四、 运行工作

有的朋友运行的时候发现问题了,就是如何把启动项设置成frmLogin这个登录界面。右键点击查看frmMain的代码。然后请看下图,更改即可。

本文到此就结束了,如果您有问题可以评论或者邮箱[email protected]联系我哦~

下一篇文章:Smobiler实现主界面(上)——C# 或.NET Smobiler实例开发手机app(三)

猜你喜欢

转载自blog.csdn.net/qq_41647999/article/details/83589001
今日推荐