From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 18 九月 2020 13:58:19 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs |   64 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs
index 99c76e4..1ee238d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs
@@ -7,7 +7,7 @@
     /// <summary>
     /// 楠岃瘉鐮佹帶浠�
     /// </summary>
-    public class VerificationCodeControl : FrameLayout
+    public class VerificationCodeControl : NormalFrameLayout
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -20,9 +20,13 @@
         /// </summary>
         public Action<string> FinishInputEvent = null;
         /// <summary>
-        /// 瀵嗙爜杈撳叆绫诲瀷
+        /// 瀵嗙爜杈撳叆绫诲瀷(瀹冧笌NumberInputOnly涓嶅叡瀛�)
         /// </summary>
         public bool SecureTextEntry = false;
+        /// <summary>
+        /// 杈撳叆閿洏鎸囧畾涓烘暟瀛楅敭鐩�(榛樿涓簍rue,瀹冧笌SecureTextEntry涓嶅叡瀛�)
+        /// </summary>
+        public bool NumberInputOnly = true;
         /// <summary>
         /// 楠岃瘉鐮侀暱搴�
         /// </summary>
@@ -64,7 +68,7 @@
                 frameCode.X = i * Application.GetRealWidth(115 + 49);
                 frameCode.Width = Application.GetRealWidth(115);
                 frameCode.Height = Application.GetRealHeight(104);
-                frameCode.Radius = 6;
+                frameCode.Radius = (uint)Application.GetRealHeight(17);
                 frameCode.BorderWidth = 1;
                 frameCode.BorderColor = UserCenterColor.Current.TextFrameColor;
                 this.AddChidren(frameCode);
@@ -73,6 +77,10 @@
                 if (SecureTextEntry == true)
                 {
                     txtCode.SecureTextEntry = true;
+                }
+                else if (NumberInputOnly == true)
+                {
+                    txtCode.IsNumberKeyboardType = true;
                 }
                 txtCode.Name = i.ToString();
                 txtCode.TextAlignment = TextAlignment.Center;
@@ -107,7 +115,25 @@
             }
             if (e.Focus == true)
             {
+                //鑷姩鐒︾偣閫夋嫨鍓嶉潰鐨勭┖鐧戒綅缃�
+                //if (txtCode.Text == string.Empty)
+                //{
+                //    for (int i = 0; i < this.CodeLenth; i++)
+                //    {
+                //        if (dicCodeControls[i].Text == string.Empty)
+                //        {
+                //            dicCodeControls[i].FoucsChanged -= this.TxtCode_FoucsChangedEvent;
+                //            dicCodeControls[i].Parent.BorderColor = UserCenterColor.Current.TextFrameSelectColor;
+                //            dicCodeControls[i].Foucs = true;
+                //            dicCodeControls[i].FoucsChanged += this.TxtCode_FoucsChangedEvent;
+                //            return;
+                //        }
+                //    }
+                //}
                 txtCode.Parent.BorderColor = UserCenterColor.Current.TextFrameSelectColor;
+#if Android
+                txtCode.SetSelectionEnd(); 
+#endif
             }
             else
             {
@@ -132,6 +158,10 @@
             if (textValue.Length == this.CodeLenth)
             {
                 dicCodeControls[this.CodeLenth - 1].Foucs = true;
+#if Android
+                //鍏夋爣鑷充簬鏈�鍚�
+                dicCodeControls[this.CodeLenth - 1].SetSelectionEnd();
+#endif
                 for (int i = 0; i < this.CodeLenth; i++)
                 {
                     //鍏堢Щ闄や簨浠�
@@ -160,9 +190,17 @@
                 if (dicCodeControls.ContainsKey(index + 1) == true)
                 {
                     dicCodeControls[index + 1].Foucs = true;
+#if Android
+                    //鍏夋爣鑷充簬鏈�鍚�
+                    dicCodeControls[index + 1].SetSelectionEnd();
+#endif
                 }
                 else
                 {
+#if Android
+                    //鍏夋爣鑷充簬鏈�鍚�
+                    txtCode.SetSelectionEnd();
+#endif
                     //鏈�鍚庝竴浣嶈緭鍏ュ畬鎴�,鏍¢獙楠岃瘉鐮�
                     string code = string.Empty;
                     for (int i = 0; i < this.CodeLenth; i++)
@@ -189,6 +227,10 @@
                     if (dicCodeControls.ContainsKey(index - 1) == true)
                     {
                         dicCodeControls[index - 1].Foucs = true;
+#if Android
+                        //鍏夋爣鑷充簬鏈�鍚�
+                        dicCodeControls[index - 1].SetSelectionEnd();
+#endif
                     }
                 }
             }
@@ -209,6 +251,22 @@
             }
         }
 
+        /// <summary>
+        /// 娓呯┖杈撳叆鐨勫��
+        /// </summary>
+        public void ClearInputValue()
+        {
+            foreach (var inputText in this.dicCodeControls.Values)
+            {
+                //鍏堢Щ闄や簨浠�
+                inputText.TextChangeEventHandler -= TxtCode_TextChangeEvent;
+                //璧嬪��
+                inputText.Text = string.Empty;
+                inputText.TextChangeEventHandler += TxtCode_TextChangeEvent;
+            }
+            dicCodeControls[0].Foucs = true;
+        }
+
         #endregion
 
         #region 鈻� 鎺т欢鎽ф瘉___________________________

--
Gitblit v1.8.0