Проверка входного имени пользователя в списке для отображения сообщения об ошибке, если имя пользователя не уникально - PullRequest
0 голосов
/ 19 февраля 2020

Я работаю над проектом, в котором я должен отобразить сообщение об ошибке , если вводимый username является не уникальным . Я пытаюсь выполнить поиск в моем Listbox, чтобы узнать, существует ли уже имя пользователя. Программа работает нормально, но она не работает (найти никогда == true, даже если ввод username, который я ввожу, точно такой же , как другой в моем Listbox ) Я довольно новичок в C#, так что я просто возиться с синтаксисом, но ничего не получается. Любая помощь высоко ценится!

    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;
    }

1 Ответ

1 голос
/ 19 февраля 2020

Ну, ContainsFocus возвращает true / false в зависимости от того, lb_Form1_ListUsers имеет или нет фокус клавиатуры ; так что сравнение этого значения bool с string 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;  
   }
...