Home > Blockchain >  Focus Entry in a Custom Control
Focus Entry in a Custom Control

Time:11-13

how can i set a focus for a Entry nested in a custom control?

PackageCode.xaml

<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         x:Name="this"
      
         x:Class="Views.Controls.PackageCode">

<Entry x:Name="txtPackageCode" Completed="txtPackageCode_Completed"> </Entry>

I have tried with txtPackageCode.Focus();

  public PackageCode()
    {
        InitializeComponent();

        txtPackageCode.Focus();

    }

Nested in my Main.xaml

 <ContentPage.Content>
    <StackLayout>
        
        <Label Text="Welcome to Xamarin.Forms!"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
                
        <local:PackageCode  ></local:PackageCode>
        

        <Button Text="ClickMe"
                Clicked="Button_Clicked"    ></Button>

    </StackLayout>
   


</ContentPage.Content>

And How to extract the value of this Entry in my Main.xaml?

CodePudding user response:

add a public method in PackageCode

public void Focus()
{
  txtPackageCode.Focus();
}

then call it from Main

public override void OnAppearing()
{
    // you will need to assign an x:Name in the XAML
    packageCode.Focus();
}

CodePudding user response:

protected override async void OnAppearing()
{
    base.OnAppearing();
    await Task.Delay(1);
    packageCode.SetFocus();
}

This worked. Setting the Focus to an Entry in Xamarin.Forms

  • Related