1. 程式人生 > >Smobiler實現美觀登入介面——C# 或.NET Smobiler例項開發手機app(二)

Smobiler實現美觀登入介面——C# 或.NET Smobiler例項開發手機app(二)

目錄

一、 本文目標

二、 準備工作

1、 資料庫

2、 材料

三、 介面佈局

1、設定控制元件的屬性值

(1) 輸入框

(2) 圖片屬性

(3) HandElectricity的標題的label屬性

(4)登入按鈕

(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(三)