【问题标题】:Entry cell loses focus on button press in xamarin forms输入单元格失去了对 xamarin 表单中按钮按下的关注
【发布时间】:2019-04-29 11:00:54
【问题描述】:

我有一些按钮,当按下它时就像键盘一样,它必须填充一个聚焦的输入字段。但它不起作用,因为按下按钮会导致条目失去焦点。 谁能给我一个提示来解决这个问题?

    private void Button_Clicked(object sender, EventArgs e)
    {   Button button = (Button)sender;
        string pressed = button.Text;
        if (this.FirstDigit.IsFocused)
        {
            this.FirstDigit.Text += pressed;
        }and so on ...

【问题讨论】:

    标签: c# xaml xamarin xamarin.forms


    【解决方案1】:

    我发现单击按钮时很难保持条目的焦点。

    我为你写一个WorkAroud,当条目为Unfocused时,使用previousEntry记录这个条目:

    public partial class MainPage : ContentPage
    {
        public Entry previousEntry;
    
        public MainPage()
        {
            InitializeComponent();
    
            first.Unfocused += (object sender, FocusEventArgs e) => {
                previousEntry = (Entry)sender;
            };
    
            second.Unfocused += (object sender, FocusEventArgs e) => {
                previousEntry = (Entry)sender;
            };
    
            third.Unfocused += (object sender, FocusEventArgs e) => {
                previousEntry = (Entry)sender;
            };
        }
    
        private void Button_Clicked(object sender, EventArgs e)
        {
    
            Button button = (Button)sender;
            string pressed = button.Text;
    
            if (previousEntry != null)
            {
                previousEntry.Text += pressed;
            }
    
        }    
    }
    

    Xaml 中:

    <StackLayout>
        <!-- Place new controls here -->
    
        <Button Text="click me" Clicked="Button_Clicked"  HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
    
        <Entry x:Name="first" Text="1+" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
        <Entry x:Name="second" Text="2+" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
        <Entry x:Name="third" Text="3+" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
    
    </StackLayout>
    

    让我知道它是否有效。

    【讨论】:

      【解决方案2】:

      我会打电话

      entry.Focus();
      

      在那个方法中使它起作用。

      【讨论】:

      • 它在按下按钮之前一直有效,通过单击按钮,条目焦点被移除,我无法确定应该填充哪个条目。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2020-03-05
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2020-06-20
      • 2021-01-03
      相关资源
      最近更新 更多