Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xaramin.forms按钮Isenable失败_C#_Xamarin_Button_Disable - Fatal编程技术网

C# Xaramin.forms按钮Isenable失败

C# Xaramin.forms按钮Isenable失败,c#,xamarin,button,disable,C#,Xamarin,Button,Disable,我是新来的沙拉明。我正在设计一个智力竞赛游戏。我想在用户单击按钮后将其禁用,以防止用户再次选择它。我试着使用Isenable,但它不起作用。 如果我没有写代码,请指出 XAML CODE <StackLayout> <StackLayout> <Button x:Name="C11" Text="$1" WidthRequest="50" HeightRequest

我是新来的沙拉明。我正在设计一个智力竞赛游戏。我想在用户单击按钮后将其禁用,以防止用户再次选择它。我试着使用Isenable,但它不起作用。 如果我没有写代码,请指出

XAML CODE
 <StackLayout>
        <StackLayout>
            <Button x:Name="C11" Text="$1" WidthRequest="50" HeightRequest="100"  Clicked="C11_Clicked" />
            <Button x:Name="C12" Text="$1" WidthRequest="50" HeightRequest="100"  Clicked="C12_Clicked"/>
        </StackLayout>
       

    </StackLayout>
更新部分

 private void continue_Clicked(object sender, EventArgs e)
    
        {
            MainPage m = new MainPage();
            m.C11btn.IsEnabled = false;
            Preferences.Set("ButtonEnableFlag", false);
            Navigation.PushModalAsync(new MainPage());
           
        }

        protected override void OnAppearing()
        {
            base.OnAppearing();
            var enableValue = Preferences.Get("ButtonEnableFlag", true);
            MainPage m = new MainPage();
           
            m.C11btn.IsEnabled = enableValue;
        }
请问如何永久禁用该按钮

如果要永久禁用按钮,需要在设备中保存一个自定义状态标志。下次进入此视图时,此自定义状态标志将以编程方式禁用按钮

例如,我们可以使用来sace自定义状态标志并覆盖出现的
方法,如下所示:

public partial class PageThird : ContentPage
{
    public PageThird()
    {
        InitializeComponent();
    }

    private void Button_Clicked(object sender, EventArgs e)
    {
        MyButton.IsEnabled = false;
        Preferences.Set("ButtonEnableFlag", false);
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        var enableValue = Preferences.Get("ButtonEnableFlag", true);
        MyButton.IsEnabled = enableValue;
    }
}
以下是此页面的Xaml代码:

<ContentPage.Content>
    <StackLayout Padding="20">
        <Label Text="Welcome to PagePersonal!"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
        <Button x:Name="MyButton" Text="Disable" Clicked="Button_Clicked"/>
    </StackLayout>
</ContentPage.Content>
然后它就可以工作了,不需要在需要的页面中更改代码

请问如何永久禁用该按钮

如果要永久禁用按钮,需要在设备中保存一个自定义状态标志。下次进入此视图时,此自定义状态标志将以编程方式禁用按钮

例如,我们可以使用来sace自定义状态标志并覆盖出现的
方法,如下所示:

public partial class PageThird : ContentPage
{
    public PageThird()
    {
        InitializeComponent();
    }

    private void Button_Clicked(object sender, EventArgs e)
    {
        MyButton.IsEnabled = false;
        Preferences.Set("ButtonEnableFlag", false);
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        var enableValue = Preferences.Get("ButtonEnableFlag", true);
        MyButton.IsEnabled = enableValue;
    }
}
以下是此页面的Xaml代码:

<ContentPage.Content>
    <StackLayout Padding="20">
        <Label Text="Welcome to PagePersonal!"
            VerticalOptions="CenterAndExpand" 
            HorizontalOptions="CenterAndExpand" />
        <Button x:Name="MyButton" Text="Disable" Clicked="Button_Clicked"/>
    </StackLayout>
</ContentPage.Content>
然后它就可以工作了,不需要在需要的页面中更改代码


您好,根据共享代码,首次禁用按钮没有问题。但是如果导航到下一页,后退时按钮将不会被禁用。@JuniorJiang MSFT我可以问一下如何永久禁用按钮吗?是的,您可以。我已经更新了答案,你有时间可以看一下。如果回复有帮助,请不要忘记接受它作为答案(单击✔ 在这个答案的左上角)并投票,它将帮助其他有类似问题的人。嗨,从共享代码来看,第一次禁用按钮没有问题。但是如果导航到下一页,后退时按钮将不会被禁用。@JuniorJiang MSFT我可以问一下如何永久禁用按钮吗?是的,您可以。我已经更新了答案,你有时间可以看一下。如果回复有帮助,请不要忘记接受它作为答案(单击✔ 在这个答案的左上角)和投票,这将有助于其他谁有类似的问题。对不起,我没有明确的问题,我想让按钮永久禁用使用另一页。cs文件,这仍然是可能的???我试着编写你提供的代码,但它不起作用。谢谢你的回答。我已经更新了我的问题above@JUSTINCHUA嗨,有可能。如果您理解我的共享代码,那是肯定的。您可以在其他页面上设置状态标志,当您返回到所需页面时,它将起作用。我会更新答案,你有时间的时候可以看一下。你好。我已经试过了你发布的第一个示例,我已经试过了。是的,这是工作。但在我的例子中,我在同一页上有几个按钮,但我不想同时禁用它。而且似乎不可能在一个页面上有多个覆盖类。@JUSTINCHUA嗨,你能解释一下你的需要吗?从这个问题上,我只知道你想禁用一个按钮,后来说需要从另一个页面禁用它。您在问题中没有解释有关场景的详细信息。有很多方法可以禁用另一个页面的按钮,我的共享答案就是其中之一。您还可以使用MVVM绑定
IsEnabled
属性来实现这一点,它将用于一个页面中的多个按钮。对不起,我没有明确说明问题,我想使用另一个page.cs文件永久禁用按钮,这是否仍然可行???我试着编写你提供的代码,但它不起作用。谢谢你的回答。我已经更新了我的问题above@JUSTINCHUA嗨,有可能。如果您理解我的共享代码,那是肯定的。您可以在其他页面上设置状态标志,当您返回到所需页面时,它将起作用。我会更新答案,你有时间的时候可以看一下。你好。我已经试过了你发布的第一个示例,我已经试过了。是的,这是工作。但在我的例子中,我在同一页上有几个按钮,但我不想同时禁用它。而且似乎不可能在一个页面上有多个覆盖类。@JUSTINCHUA嗨,你能解释一下你的需要吗?从这个问题上,我只知道你想禁用一个按钮,后来说需要从另一个页面禁用它。您在问题中没有解释有关场景的详细信息。有很多方法可以禁用另一个页面的按钮,我的共享答案就是其中之一。您还可以使用MVVM绑定
IsEnabled
属性来实现这一点,它将用于一个页面中的多个按钮。