Open2
[.NET MAUI] ダブルタップで入力値を消去
テキストボックス(Entryクラス)をダブルタップしたときに、入力値を消去させたい。
Entry
にTapGestureRecognizer
を追加するだけ。
MainPage.xaml
<Entry x:Name="CarTypeEntry" WidthRequest="180"
Focused="CarType_Focused"
Unfocused="CarType_Unfocused"
FontSize="18" TextColor="#000" BackgroundColor="#FFF" Margin="2">
+ <Entry.GestureRecognizers>
+ <TapGestureRecognizer Tapped="TapGestureRecognizer_DoubleTapped"
+ NumberOfTapsRequired="2" />
+ </Entry.GestureRecognizers>
</Entry>
イベントハンドラ側でイベント発生元のEntryオブジェクトの入力値を消去する。
MainPage.xaml.cs
+ void TapGestureRecognizer_DoubleTapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
+ {
+ ((Entry)sender).Text = "";
+ }
一個のオブジェクトに対してシングルタップとダブルタップの両方でイベント発生させたい場合、TapGestureRecognizer
をもう1個追加する。
MainPage.xaml
<Entry x:Name="CarTypeEntry" WidthRequest="180"
Focused="CarType_Focused"
Unfocused="CarType_Unfocused"
FontSize="18" TextColor="#000" BackgroundColor="#FFF" Margin="2">
<Entry.GestureRecognizers>
+ <TapGestureRecognizer Tapped="TapGestureRecognizer_SingleTapped"
+ NumberOfTapsRequired="1" />
<TapGestureRecognizer Tapped="TapGestureRecognizer_DoubleTapped"
NumberOfTapsRequired="2" />
</Entry.GestureRecognizers>
</Entry>
MainPage.xaml.cs
+ void TapGestureRecognizer_SingleTapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
+ {
+ Console.WriteLine("TapGestureRecognizer_SingleTapped: " + sender.ToString());
+ }