• <menu id="w2i4a"></menu>
  • logo DevExpress使用教程

    文檔首頁>>DevExpress使用教程>>DevExpress使用教程:利用WizardControl構(gòu)建多步向?qū)Ы缑?/a>

    DevExpress使用教程:利用WizardControl構(gòu)建多步向?qū)Ы缑?/h1>

    利用好的界面控件,往往能做成比較棒的界面體驗效果。在一些界面操作里面,我們可能把它拆分為幾部進行處理,這個時候引入WizardControl向?qū)Э丶撌潜容^不錯的選擇了。多步的處理方式,可以讓用戶避免一次性輸入太多內(nèi)容的煩躁心情,也可以針對性的校驗部分內(nèi)容,本文以利用WizardControl控件來設計找回密碼的結(jié)果來進行介紹,使大家對基于DevExpress的WizardControl向?qū)Э丶氖褂糜幸粋€大概的了解。

    | DevExpress最新版下載 |

    1、界面效果的規(guī)劃

    在一般APP或者基于網(wǎng)絡的軟件界面里面,都有一個為了幫助用戶找回賬號密碼的功能,可以讓用戶自助通過手機、郵件等方式獲得充值密碼的機會。如一般的APP界面效果如下所示。

    DevExpress WizardControl向?qū)Э丶? src= DevExpress Wizard

    但是一般Winform的界面,可以利用向?qū)Э丶龅母茫渲蠨evExpress的WizardControl向?qū)Э丶褪且粋€很好的選擇。

    我們一般在DevExpress的VS工具欄里面選擇導航布局選項卡,就可以找到對應的WizardControl向?qū)Э丶恕?/p>

    DevExpress向?qū)Э丶? src=

    DevExpress向?qū)Э丶? src=

    最終我們實現(xiàn)的效果如下所示。

    DevExpress向?qū)Э丶? src=

    DevExpress向?qū)Э丶? src=

    2、控件的使用及代碼處理

    上面介紹了,在在DevExpress的VS工具欄里面選擇導航布局選項卡,就可以找到對應的WizardControl向?qū)Э丶恕?/p>

    DevExpress向?qū)Э丶? src=

    DevExpress向?qū)Э丶? src=

    我們拖動能這個控件到一個空白的窗體界面上,就可以看到默認有一些界面了,我們在其中可以看到一個完整的向?qū)Ы缑嫘Ч摹?/p>

    DevExpress向?qū)Э丶? src=

    拖動過來的控件,初始化界面效果都是英文的,可以通過控件屬性對其中的文字進行修改即可。

    DevExpress向?qū)Э丶? src=

    修改后的界面效果如下所示。

    DevExpress向?qū)Э丶? src=

    然后我們修改向?qū)Э丶囊恍傩裕鐖D片、文字等內(nèi)容,最后在其中空白的位置,拖入一些界面控件,實現(xiàn)我們的界面效果即可。

    DevExpress向?qū)Э丶? src=

    另外默認的向?qū)Э丶侨齻€界面頁的,因此我們可以根據(jù)需要增加或者刪除一些,如本例我就移除了一個,僅僅使用兩個頁面來處理密碼的找回處理即可。

    DevExpress向?qū)Э丶? src=

    另外,我們?yōu)榱藢崿F(xiàn)向?qū)Э丶缑娴妮斎腧炞C和處理,我們往往還需要對其中下一步、完成、取消、幫助等事件進行處理,這樣才能達到較好的處理效果。

    DevExpress向?qū)Э丶? src=

    其中部分處理代碼如下所示。

    private void wizardControl1_NextClick(object sender, DevExpress.XtraWizard.WizardCommandButtonClickEventArgs e)
            {
                string pageText = e.Page.Text;
                if(pageText == "驗證賬號")
                {
                    if (this.txtMobile.Text.Length == 0 || this.txtValidateCode.Text.Length == 0)
                    {
                        MessageDxUtil.ShowTips("請輸入手機號碼和驗證碼");
                        e.Handled = true;
                        this.txtValidateCode.Focus();
                        return;
                    }
                    else if(!ValidateUtil.IsValidMobile(this.txtMobile.Text))
                    {
                        MessageDxUtil.ShowTips("請輸入正確的手機號碼");
                        e.Handled = true;
                        this.txtMobile.Focus();
                        return;
                    }
                    else
                    {
                        bool result = CallerFactory<ISmsCodeService>.Instance.CheckSmsCode(this.txtMobile.Text, this.txtValidateCode.Text);
                        if (!result)
                        {
                            MessageDxUtil.ShowTips("驗證碼校驗不正確,請檢查驗證碼是否在有效時間內(nèi)。");
                            this.txtValidateCode.Focus();
                            return;
                            e.Handled = true;
                        }
                    }
                }
                else if(pageText == "重置密碼")
                {
                    MessageDxUtil.ShowTips(pageText);
                }
            }

    在這些Next下一步事件里面,有一個代碼是需要阻塞下一步的處理的。

    e.Handled = true;

    這樣我們就可以實現(xiàn)對用戶輸入的驗證處理了,如果處理不通過,那么就停留在這個頁面上,讓用戶校正輸入即可。

    如果是完成按鈕頁面,它的處理也是差不多。

    private void wizardControl1_FinishClick(object sender, CancelEventArgs e)
            {
                if (this.txtCorpAccount.Text.Length == 0)
                {
                    this.txtCorpAccount.Focus();
                    MessageDxUtil.ShowTips("公司賬號不能為空!");
                    e.Cancel = true;
                    return;
                }
                else if(this.txtNewPassword.Text.Length == 0)
                {
                    this.txtNewPassword.Focus();
                    MessageDxUtil.ShowTips("密碼不能為空!");
                    e.Cancel = true;
                    return;
                }
                else if (!this.txtNewPassword.Text.Equals(this.txtRePassword.Text))
                {
                    this.txtRePassword.Focus();
                    MessageDxUtil.ShowTips("兩次密碼不一致!");
                    e.Cancel = true;
                    return;
                }
    
    
              ...............

    最后我們實現(xiàn)的效果就是前面所說的一樣了。

    DevExpress向?qū)Э丶? src=

    DevExpress向?qū)Э丶? src=

    結(jié)合短信平臺,我們可以給用戶發(fā)送驗證碼以及提示消息即可。

    DevExpress向?qū)Э丶? src=

    本文原文為博客園伍華聰發(fā)布。

    DevExpress年終促銷火熱進行中!低至8折起!
    如果您要購買DevExpress或者對產(chǎn)品還存在疑問,請咨詢我們的在線客服>>

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();