【问题标题】:Why does TextChanged fire when a RichEditBox gains focus?为什么当 RichEditBox 获得焦点时 TextChanged 会触发?
【发布时间】:2014-05-25 06:22:02
【问题描述】:

我在 C# Windows 运行时应用程序中有一个 RichEditBox。我已将其设置为在 TextChanged 上将布尔标志 IsFileUpToDate 设置为 false,如下所示:

private void OnTextChanged(object sender, RoutedEventArgs e)
{
    if (IsFileUpToDate != false)
    {
        IsFileUpToDate = false;
    }
}

第一次导航到页面时,IsFileUpToDate 应设置为 true。我是这样设置的:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    IsFileUpToDate = true;
}

但是,当页面加载时,RichEditBox 会立即获得焦点,这似乎导致它将布尔值设置为 false,即使文本没有更改。为什么要这样做?如何重写这些命令以便可靠地设置布尔值?

【问题讨论】:

    标签: c# windows-runtime textchanged


    【解决方案1】:

    RichEditBox 在加载时更改文本
    你可以有另一个标志,以确保它不会在第一次改变你的

    private void OnTextChanged(object sender, RoutedEventArgs e)
    {
        if (IsFirstload)
        {
            IsFirstLoad = false;
            return;
        }
    
        if (IsFileUpToDate != false)
        {
            IsFileUpToDate = false;
        }
    }
    

    【讨论】:

    • 我也看到了这个错误,这不仅仅是在加载 RichEditBox 时。相反,它在每次 RichEditBox 获得焦点时出现。因此,此解决方案将不起作用。
    猜你喜欢
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多