2016-08-05 49 views
0

我有兩個文本框即T1和T2.The驗證是有點像,T1只能接受值小於10FOCUS和不聚焦在XAMARIN FORMS

比方說,用戶在T1進入20。重點仍然放在T1上。現在用戶在T2上點擊(Focus on T2)。

我現在需要做的是,如果T1中的值不小於10.我需要刪除T1中的當前值(即20)並將焦點設置回T1。

如何在表單中實現此目的?

T2.Focused += (object sender, FocusEventArgs e) => { 

      try { 
       if (T1.text > 10) { 
        T1.Text = ""; 
        T1.Focus(); 
       } 
      } catch { 
       Console.WriteLine ("T2.Focused CAUGHT"); 
      } 
     }; 
+0

你能發佈請你的代碼片段? – Gar

+0

重點不在於T1。從每一處消失的焦點和數字鍵盤消失。 – MainakChoudhury

+0

'T1.text'是一個字符串,你如何比較'T1.text> 10'? –

回答

0

可以使用Focused事件:

T2.Focused += (s,e) => 
{ 
    if(int.Parse(T1.Text) > 10) 
    { 
     T1.Focus(); 
    } 
} 

但更好的方法將是使用Completed event

T1.Completed += (s,e) => 
{ 
    if(int.Parse(T1.Text) > 10) 
    { 
     T1.Focus(); 
    } 
} 
+0

T2.Focused事件調用正常,但焦點不會傳輸到T1,並且沒有任何文本框具有焦點。只有當我點擊設備鍵盤上的完成按鈕,而不是當我專注於另一個文本框時,纔會調用完成的事件。 @Rohit – MainakChoudhury

+0

你可以嘗試在UI線程上運行它,看它是否不是後臺線程問題。 –

0

試試看:

if (T1.Text <10) 
{ 
T2.Select(); 
} 
else 
{ 
T1.Clear(); 
}