Как преобразовать listbox.items в массив - PullRequest
0 голосов
/ 04 марта 2020

Я делаю функцию поиска для ListBox, и мне бы хотелось, чтобы, как только пользователь что-то набрал в TextBox, все элементы удаляются из ListBox, кроме элемента, который соответствует поиску. текст.

//files[i] are the files of the openfiledialog
List<String> ListboxItems = new List<String> {files[i]}; 

try
{
    String search = gunaTextBox1.Text;

    if (String.IsNullOrEmpty(search))
    {
        listBox1.Items.Clear();
        listBox1.Items.AddRange(ListboxItems.ToArray());
    }

    var items = (from a in ListboxItems
                 where a.StartsWith(search)
                 select a).ToArray<String>();

    listBox1.Items.Clear();
    listBox1.Items.AddRange(items);
}          
catch { }

Кто-нибудь знает, как я могу это реализовать?

1 Ответ

0 голосов
/ 04 марта 2020

Вот решение

сначала вам нужно добавить строку списка List<string> listcollection = new List<string>();

, затем вам нужно написать Textbox1_TextChanged событие

List<string> listcollection = new List<string>();
    private void gunaTextBox1_TextChanged(object sender, EventArgs e)
    {           
        if(gunaTextBox1.Text == "Suche")
        {

        }
        else
        {
            try
            {
                String search = gunaTextBox1.Text;

                if (String.IsNullOrEmpty(search))
                {
                    listBox1.Items.Clear();
                    listBox1.Items.AddRange(listcollection.ToArray());
                }

                var items = (from a in listcollection
                             where a.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1
                             select a).ToArray<String>();

                listBox1.Items.Clear();
                listBox1.Items.AddRange(items);
            }
            catch
            {

            }
        }         
    }

, а затем просто связать его

 listcollection.Clear();
                foreach(string str in listBox1.Items)
                {
                    listcollection.Add(str);
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...