c# - C# 中是否有类似于 C 中的 fflush() 的东西?

标签 c# c xaml esri fflush

我的问题是:

用户可以搜索地址。如果没有找到,用户会看到一个消息框。他可以按 ENTER 键关闭它。到目前为止,一切都很好。也可以通过按 ENTER 键开始调用 SearchAddresses()。现在用户处于无限循环中,因为每个 ENTER(让消息框消失)都会开始新的搜索。

这里是代码隐藏:

private void TxtBoxAddress_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
            btnSearch_Click(sender, e);
    }


private void queryTask_Failed(object sender, TaskFailedEventArgs e)
    {
        //throw new NotImplementedException();
        MessageBox.Show("*", "*", MessageBoxButton.OK);
        isMapNearZoomed = false;
    }

这里是 xaml 代码:

<TextBox Background="Transparent" Name="TxtBoxAddress" Width="200" Text="" KeyUp="TxtBoxAddress_KeyUp"></TextBox>

<Button Content="Suchen" Name="btnSearch" Click="btnSearch_Click" Width="100"></Button>

我如何在 C# 中处理这个死循环?

最佳答案

哈哈。那是一个有趣的无限循环。有很多答案。

尝试添加一个全局字符串 _lastValueSearched。

private string _lastValueSearched;

private void TxtBoxAddress_KeyUp(object sender, KeyEventArgs e)
  {
    if (e.Key == Key.Enter && _lastValueSearched != TxtBoxAddress.Text)
      {
        //TxtBoxAddress.LoseFocus();
        btnSearch_Click(sender, e);
        _lastValueSearched = TxtBoxAddress.Text;
      }
  }


private void queryTask_Failed(object sender, TaskFailedEventArgs e)
 {
    //throw new NotImplementedException();
    MessageBox.Show("*", "*", MessageBoxButton.OK);
    isMapNearZoomed = false;
 }

因此,在第一次输入内部 TxtBoxAddress 时,lastSearchValue 成为新的搜索值。当他们在消息框上按回车键时,如果 TxtBoxAddress 文本没有更改,则不会触发 if 语句。

或者,注释掉的行,TxtBoxAddres.LoseFocus() 可能会自行工作。这应该将焦点从 TextBox 上移开,因此当用户在消息框上按下 enter 时,不应触发 TextBox KeyDown。

关于c# - C# 中是否有类似于 C 中的 fflush() 的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25686223/

相关文章:

c# - 如何在ASP.NET Core生产服务器上禁用 "Attempting to reconnect to the server"消息

c - 如何修复 'for' 循环,使其一直循环直到我输入 x?

c# - 如何将枚举绑定(bind)到我的列表框?

c# - 以 double 存储十进制数?使用 updatesourcetrigger 作为 PropertyChanged 的​​属性

c# - WPF 中引用的 .NET Standard 类库 - 设计时 XAML 中的符号错误

c# - 将 Xamarin.forms 应用程序上的目标框架从 Android 8.1 更改为 Android 9(对于 Xamarin.Essentials)

c# - Azure Redis 缓存获取和设置复杂类型

c# - 数据直方图——优化binwidth优化

C程序查询彩票号码: why some tests fail?

c - while 循环不以 '\0' 终止