首页 > 解决方案 > 检查列表框中的输入用户名以在用户名不唯一时显示错误消息

问题描述

我正在做一个项目,如果输入不是唯一的,我必须显示错误消息。我正在尝试在我的内部搜索以查看用户名是否已存在。该程序运行良好,但它不起作用(即使我输入的内容与我输入的另一个完全相同,也永远找不到)工作。非常感谢任何帮助!usernameListbox == trueusernameListbox

    private void txt_Username_TextChanged(object sender, EventArgs e)
    {
       bool find = lb_Form1_ListUsers.ContainsFocus.Equals(txt_Username.Text);

        if (find == true)
        {
           lbl_Form1_UniqueError.Visible = true;
        }
        else
        {
            lbl_Form1_UniqueError.Visible = false;
        }

        find = false;
    }

标签: c#winformslistboxcontains

解决方案


好吧,ContainsFocus返回true/false取决于是否lb_Form1_ListUsers键盘焦点;所以比较这个boolstring txt_Username.Text 并没有太大意义

假设lb_Form1_ListUsers.Items包含类型String(用户名)的值,我们可以查询它们是否有Any等于txt_Username.Text

   using System.Linq; 

   ...

   private void txt_Username_TextChanged(object sender, EventArgs e)
   {
     bool find = lb_Form1_ListUsers
       .Items
       .Cast<String>() //TODO: put the right type here if required
       .Any(item => item == txt_Username.Text);

     lbl_Form1_UniqueError.Visible = find;  
   }

推荐阅读