在我的代碼中,每當Entry失去焦點時,我都需要將資料保存到我的資料庫中,除非它是由Button. 我注意到在 中Xamarin,當 an 獲得Entry焦點并單擊按鈕時,首先為 Entry 觸發 Unfocus 事件,然后觸發Button Focus事件,然后觸發Button Clicked事件。
我需要一些方法來確定 an 的 Unfocus 事件是否Entry由于單擊 a 而被觸發Button。有沒有辦法做到這一點?
uj5u.com熱心網友回復:
“我需要一些方法來確定是否由于單擊按鈕而觸發了條目的 Unfocus 事件。有什么方法可以做到這一點嗎?”
不是直接的。這是一種推斷方法。
在 Unfocus 事件中設定一個標志,并啟動一個一次性計時器。您必須進行試驗才能確定什么時間間隔效果很好。我的猜測是在 200 毫秒到 500 毫秒之間。
在按鈕焦點事件中,清除該標志和/或停止計時器。
如果計時器 Elapsed 事件觸發,而按鈕 Focus 事件沒有停止它(或清除標志),那么您發現 Unfocus 不是由于 Button。
那時,采取所需的行動。
uj5u.com熱心網友回復:
您可以通過檢查“已按下”來知道按鈕是否被單擊
這是我的示例代碼,您可以參考:
圣誕節:
<ContentPage.Content>
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<Entry x:Name="myentry" Unfocused="E_UFEvent"/>
<Button x:Name="mybutton" Clicked="Onbutton_Clicked" Text="Click me"/>
</StackLayout>
</ContentPage.Content>
代碼隱藏:
void E_UFEvent(Object sender, EventArgs e)
{if (mybutton.IsPressed)
{
DisplayAlert("Notice", "Fired after button clicked","ok");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/409437.html
標籤:
上一篇:物體框架資料播種DateTime
