C# 在文本框C中键入时搜索#

C# 在文本框C中键入时搜索#,c#,winforms,entity-framework,C#,Winforms,Entity Framework,我有两个文本框。一个是键入CustomerId,另一个是显示客户名称 我想做的是:我想在键入CustomerId(获取与CustomerId相关的相关CustomerName)时,将搜索结果获取到CustomerName文本框中。这不是自动完成。我希望在不按文本框中的enter键或按钮的情况下获得结果 最好的方法是什么。我使用了textbox\u textchanged事件。还有其他更好的方法吗?我正在使用实体框架。您可以使用TextChanged事件。下面是一个示例: if(txtCustom

我有两个文本框。一个是键入
CustomerId
,另一个是显示客户名称

我想做的是:我想在键入
CustomerId
(获取与
CustomerId
相关的相关CustomerName)时,将搜索结果获取到
CustomerName
文本框中。这不是自动完成。我希望在不按文本框中的enter键或按钮的情况下获得结果


最好的方法是什么。我使用了
textbox\u textchanged
事件。还有其他更好的方法吗?我正在使用实体框架。

您可以使用
TextChanged
事件。下面是一个示例:

if(txtCustomerId.Text.Length > 0)
{
    int id;
    if(int.TryParse(txtCustomerId.Text, out id))
    {
       using (var ctx = new MyDbContext())
       {
            // get customer name by Id, for example:
           var name = ctx.Customers.Where(c => c.CustomerId == id)
                    .Select(c => c.CustomerName)
                    .FirstOrDefault();

           if (name != null) txtCustomerName.Text = name;
       }
    }
}

你可以使用TrimBox XTrimeC改事件,但是你要考虑的一件事是,为了工作,你需要在文本值改变时触发数据库查询。在每次按键时执行此操作都是多余的,因此您可能希望以某种方式限制事件。(被动扩展为此提供了一些很棒的功能)。之后,您必须使用实体框架查询的结果来填充文本框。如果看不到您对代码的任何尝试,则很难给出更具体的建议,但这是您所讨论的功能通常的实现方式。

如果没有异步/等待、任务/继续或其他答案中提到的其他选项,用户可能会有非常糟糕的UI体验。不适用于现实生活。可能重复